Context: MNG-5899 [1] which was originally reported as MSHADE-206 [2] I understand why the change[3] was made... but this change breaks about 80-90% of the use cases for the shade plugin...
Is there any way we can consider a compromise? I think it should be permitted for a plugin to replace the project model with a dependency reduced model, i.e. one where the transitive dependency tree is either the same or a strict subset of the transitive dependency tree of the original. If a plugin makes such a substitution then the reactor build order will remain unaffected but the classpaths of downstream modules would be affected. As I see it, if we were to try and permit such substitutions, we would need to augment the mojo API: * A Mojo would need to advertise that it performs Project Dependency Reduction, because... * The build plan would need to delay concurrent builds of modules that depend on the project using such a mojo until after the mojo has completed execution * The replacement of the project model would have to be via a specific API call such that validation of the transitive dependency tree rule was maintained as well as restricting usage of that API to mojos that have advertised their use of dependency reduction. Is there anything else that we would need to consider if we were implementing the above? (Shade would not be the only consumer of this API as I see it, for example the flatten maven plugin may well want to consume this API also...) WDYT? [1]: https://issues.apache.org/jira/browse/MNG-5899 [2]: https://issues.apache.org/jira/browse/MSHADE-206 [3]: https://github.com/apache/maven/commit/be3fb200326208ca4b8c41ebf16d5ae6b8049792 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
