Do you use Maven to manage your Java project and came across a really cool Maven plugin but realized it doesn’t work perfectly for your project? Are you new to Maven and want to understand it better? Are you interested in Open Source Software Development, and maybe thought about contributing to one?
You are not alone. Three months ago, I started working in Maven and came across a variety of dependency management issues in my Google Cloud Client library project so I started exploring ways to improve the way we manage dependencies.
I met with Ray Tsang at Google to discuss some of the issues we’ve been facing and suggestions he might have. After a few fruitful conversations, we decided to use the Flatten plugin to flatten the client library project POM in order to eliminate transitive dependencies. This is enabled by the new configuration,
<flattenDependencyMode>all</flattenDependencyMode>that Ray recently contributed to the Flatten plugin. …