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