Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
2.1.0-M1
-
None
-
None
-
None
Description
DefaultLifecycleExecutor.constructLifecycleMappings() can trigger the resolution of all the plugins declared in the project's build section. When this happens, even if those plugins are in the current reactor, that version will not be used. Instead, since those plugin artifacts haven't been built yet, the plugin will be resolved externally and bound into the plugin collector for later use. This means that even if the plugin itself isn't used until after it's build in the reactor, that version won't be used.
I'm still investigating exactly how build extensions will interact with the reactor, but I suspect they cannot be available from the current reactor either, since build extensions are loaded up front and for the entire reactor at once. I'll post an update once I've explored that section of the code.