[ https://issues.apache.org/jira/browse/MNG-5960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17749841#comment-17749841 ]
Joep Weijers commented on MNG-5960: ----------------------------------- This is still an issue. The example project maven-mojo-jojo still fails with: {code:java} $ mvn --version Apache Maven 3.9.3 (21122926829f1ead511c958d89bd2f672198ae9f) Maven home: C:\ProgramData\chocolatey\lib\maven\apache-maven-3.9.3 Java version: 17.0.2, vendor: Eclipse Adoptium, runtime: C:\Program Files\Eclipse Adoptium\jdk-17.0.2.8-hotspot Default locale: en_US, platform encoding: Cp1252 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows" {code} The Maven [maven-non-destructive-mojo-executor|https://github.com/fvanderveen/maven-non-destructive-mojo-executor] Extension to prevent this issue stopped working with Maven 3.9.0, with the following error: {code:java} [main] [ERROR] Cannot invoke "org.codehaus.plexus.PlexusContainer.lookup(java.lang.Class)" because "this.container" is null {code} > MojoExecutor overriding resolved artifacts of concurrently built MavenProject > ----------------------------------------------------------------------------- > > Key: MNG-5960 > URL: https://issues.apache.org/jira/browse/MNG-5960 > Project: Maven > Issue Type: Bug > Affects Versions: 3.3.9, needing-scrub-3.4.0-fallout > Environment: Linux 4.2.0-23-generic #28-Ubuntu SMP Sun Dec 27 > 17:47:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > (Ubuntu 15.10) > Maven 3.3.9/3.4.0-SNAPSHOT > Reporter: Fabian van der Veen > Priority: Major > Fix For: 4.x / Backlog, waiting-for-feedback > > > I have found an issue with respect to the {{MojoExecutor}} in {{maven-core}} > when building with multiple threads (e.g. {{-T1C}}). > I have created a small reproduction project here: > https://github.com/fvanderveen/maven-mojo-jojo (in the readme is some more > explanation of what I found to be the problem) > The reproduction, using the above code: > 1. Clone this repository (`git clone > https://github.com/fvanderveen/maven-mojo-jojo.git`) > 2. Make sure the clone works single-threaded: `mvn clean package`. (This > should succeed) > 3. Clean the workspace (`mvn clean`) > 4. Attempt multi-threaded compilation with at least 2 threads (`mvn package > -T2`) > Boiled down, it seems like the {{MojoExecutor#ensureDependenciesAreResolved}} > will cause an invocation to > {{LifecycleDependencyResolver#resolveProjectDependencies}} for _all_ projects > in the current {{MavenSession}} if it's configuring a plugin that defines > {{@Mojo(aggregator = true)}} and > {{DependencyContext#isResolutionRequiredForAggregatedProjects}} return true. > This resolving may, if triggered at an unfortunate time, override resolved > artifacts for projects that are being built concurrently. > In our case, a {{test-compile}} execution of the {{maven-compiler-plugin}} > was just configured (setting the resolved artifacts to the test-scope > artifacts), and right before its execution, the resolved artifacts got set > back to the compile-scope artifacts due to a aggregator plugin being > configured at around the same time. > Given the way the `ensureDependenciesAreResolved` is structured and what > aggregator plugins should do/depend on, I think it would make more sense to > _only_ invoke {{LifecycleDependencyResolver#resolveProjectDependencies}} for > the modules that are a (grand-)child of the current project. > I've created a maven extension (which can be placed in lib/ext) as a > temporary workaround using said change; which may be found here if any one > else is having the same problems: > https://github.com/fvanderveen/maven-non-destructive-mojo-executor -- This message was sent by Atlassian Jira (v8.20.10#820010)