Shade plugin using the wrong project while building the dependency reduced pom in parallel builds

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Shade plugin using the wrong project while building the dependency reduced pom in parallel builds

Emma Holmberg Ohlsson
Hi,

After encountering the issue in
https://issues.apache.org/jira/browse/MSHADE-148 (version 3.3.0 of the
shade plugin and 3.6.0 of Maven)  I ended up in a long debugging session
trying to reproduce the scenario.

What I found is that in ShadeMojo.java
(rewriteDependencyReducedPomIfWeHaveReduction)


ProjectBuildingRequest projectBuildingRequest =

new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );


will return a different project than the one that is currently processed by
the shading plugin when executing maven with --threads.

updateExcludesInDeps will build a dependency graph on one project but the
exclusions will be added to a different project.

We end up in an infinite loop in
rewriteDependencyReducedPomIfWeHaveReduction since the same exclusions will
be added over and over again.


How is session.getProjectBuildingRequest() supposed to work in parallel
builds?

Is this by design, is the shade plugin using it wrong or is it a bug in
maven-core?


Thanks in advance!

Emma Holmberg Ohlsson