[ https://issues.apache.org/jira/browse/MNG-8418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17904463#comment-17904463 ]
Tamas Cservenak commented on MNG-8418: -------------------------------------- Seems related MNG-8391 that had the change Jorge points at. > regression: maven 4: Duplicate key default > ------------------------------------------ > > Key: MNG-8418 > URL: https://issues.apache.org/jira/browse/MNG-8418 > Project: Maven > Issue Type: Bug > Affects Versions: 4.0.0-rc-1 > Environment: Apache Maven 4.0.0-rc-1 > (d81b1b6a2870dc954d6d642500ad38e8e4cb3dde) > Maven home: D:\projects\myproject\software\mvn > Java version: 17.0.13, vendor: Eclipse Adoptium, runtime: > D:\projects\myproject\software\java > Default locale: de_DE, platform encoding: UTF-8 > OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows" > Reporter: Jörg Hohwiller > Priority: Major > > I am testing migration of a complex project (600+ modules) to maven 4.0. > While I am fully aware that maven 4.0.0-rc1 is not supposed to be production > ready, I already want to do further testing to report blockers from real-life > projects that could prevent a smooth upgrade from maven 3 (3.9.9) to maven 4 > (once 4.0.0 official release is published). > The build (invocation was {{{}mvn install -DskipTests -X{}}}) is working with > maven 3 (tested with 3.8.6, 3.9.6 and 3.9.9) but it failes with maven 4 (also > with latest 4.0.0-rc-1): > {code:java} > [ERROR] Failed to execute goal on project myproject.foundation.client: Could > not collect dependencies for project > com.customer:myproject.foundation.client:jar:4.25.2.0-SNAPSHOT > [ERROR] java.lang.IllegalStateException: Duplicate key default (attempted > merging values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > [ERROR] Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > [ERROR] java.lang.IllegalStateException: Duplicate key default (attempted > merging values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > [ERROR] Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > [ERROR] : Failed to collect dependencies at > com.customer.mylibrary:mylibrary-clientcomponents:jar:3.39.0.0 -> > com.miglayout:miglayout:jar:3.7.2 > [ERROR] -> [Help 1] > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute > goal on project myproject.foundation.client: Could not collect dependencies > for project com.customer:myproject.foundation.client:jar:4.25.2.0-SNAPSHOT > java.lang.IllegalStateException: Duplicate key default (attempted merging > values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > java.lang.IllegalStateException: Duplicate key default (attempted merging > values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:279) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectArtifacts(LifecycleDependencyResolver.java:208) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:128) > at > org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:368) > at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:307) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:214) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:179) > at > org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:168) > at > org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute(BuildCacheMojosExecutionStrategy.java:145) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:165) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:107) > at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.lambda$createBuildCallable$1(MultiThreadedBuilder.java:191) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: org.apache.maven.project.DependencyResolutionException: Could not > collect dependencies for project > com.customer:myproject.foundation.client:jar:4.25.2.0-SNAPSHOT > java.lang.IllegalStateException: Duplicate key default (attempted merging > values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > java.lang.IllegalStateException: Duplicate key default (attempted merging > values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > Caused by: Duplicate key default (attempted merging values > org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) at > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:163) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:260) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectArtifacts(LifecycleDependencyResolver.java:208) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:128) > at > org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:368) > at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:307) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:214) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:179) > at > org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:168) > at > org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute(BuildCacheMojosExecutionStrategy.java:145) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:165) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:107) > at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.lambda$createBuildCallable$1(MultiThreadedBuilder.java:191) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: org.eclipse.aether.collection.DependencyCollectionException: > Failed to collect dependencies at > com.customer.mylibrary:mylibrary-clientcomponents:jar:3.39.0.0 -> > com.miglayout:miglayout:jar:3.7.2 > at > org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies(DependencyCollectorDelegate.java:260) > at > org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:79) > at > org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:241) > at > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:156) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:260) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectArtifacts(LifecycleDependencyResolver.java:208) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:128) > at > org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:368) > at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:307) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:214) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:179) > at > org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:168) > at > org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute(BuildCacheMojosExecutionStrategy.java:145) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:165) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:107) > at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.lambda$createBuildCallable$1(MultiThreadedBuilder.java:191) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: java.util.concurrent.ExecutionException: > java.lang.IllegalStateException: Duplicate key default (attempted merging > values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > at java.util.concurrent.FutureTask.get(FutureTask.java:191) > at > org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.processDependency(BfDependencyCollector.java:237) > at > org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.doCollectDependencies(BfDependencyCollector.java:202) > at > org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.collectDependencies(DependencyCollectorDelegate.java:222) > at > org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:79) > at > org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:241) > at > org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:156) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:260) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectArtifacts(LifecycleDependencyResolver.java:208) > at > org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies(LifecycleDependencyResolver.java:128) > at > org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved(MojoExecutor.java:368) > at > org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:307) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:214) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:179) > at > org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:168) > at > org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute(BuildCacheMojosExecutionStrategy.java:145) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:165) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:107) > at > org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder.lambda$createBuildCallable$1(MultiThreadedBuilder.java:191) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > Caused by: java.lang.IllegalStateException: Duplicate key default (attempted > merging values org.apache.maven.api.model.Activation@1556c428 and > org.apache.maven.api.model.Activation@62ed65df) > at java.util.stream.Collectors.duplicateKeyException(Collectors.java:135) > at > java.util.stream.Collectors.lambda$uniqKeysMapAccumulator$1(Collectors.java:182) > at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) > at > java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) > at > java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) > at > java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder.getProfileActivations(DefaultModelBuilder.java:1878) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.activateFileModel(DefaultModelBuilder.java:1135) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.readEffectiveModel(DefaultModelBuilder.java:1154) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionState.buildEffectiveModel(DefaultModelBuilder.java:807) > at > org.apache.maven.internal.impl.model.DefaultModelBuilder$ModelBuilderSessionImpl.build(DefaultModelBuilder.java:231) > at > org.apache.maven.internal.impl.resolver.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:207) > at > org.apache.maven.internal.impl.resolver.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:103) > at > org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.resolveCachedArtifactDescriptor(DependencyCollectorDelegate.java:484) > at > org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.resolveDescriptorForVersion(BfDependencyCollector.java:463) > at > org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.lambda$resolveArtifactDescriptorAsync$1(BfDependencyCollector.java:437) > at > java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) > at > java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) > at > org.eclipse.aether.internal.impl.collect.bf.BfDependencyCollector.lambda$resolveArtifactDescriptorAsync$4(BfDependencyCollector.java:436) > at java.util.concurrent.FutureTask.run(FutureTask.java:264) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.lang.Thread.run(Thread.java:840) > [ERROR] > [ERROR] > [ERROR] For more information about the errors and possible solutions, please > read the following articles: > [ERROR] [Help 1] > http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException > [ERROR] > [ERROR] After correcting the problems, you can resume the build with the > command > [ERROR] mvn [args] -r > [DEBUG] Shutting down adapter factory; available factories [file-lock, > rwlock-local, semaphore-local, noop]; available name mappers [discriminating, > file-gav, file-hgav, file-static, gav, static] > [DEBUG] Shutting down 'file-lock' factory > [DEBUG] Shutting down 'rwlock-local' factory > [DEBUG] Shutting down 'semaphore-local' factory > [DEBUG] Shutting down 'noop' factory {code} > I already checked the POM of {{{}mylibrary-clientcomponents:jar:3.39.0.0{}}}. > There are 4 parent POMs involved from where the dependency to > {{com.miglayout:miglayout:jar:3.7.2}} is defined but it is not duplicated > anywhere. Since the error indicates activations that IMHO only exist in > profiles I also checked all profiles with activations. All profiles share a > unique ID. The activations in the mylibrary POMs are always: > {code:java} > <activation> > <activeByDefault>false</activeByDefault> > </activation> {code} > In the {{myproject.foundation.client:jar:4.25.2.0-SNAPSHOT}} POM there is > also a profile with a different ID that has this activation: > {code:java} > <profile> > <id>macos</id> > <activation> > <os> > <family>mac</family> > </os> > </activation> > ... {code} > First thing that comes to my mind would be to implement a helpful > implementation of {{toString()}} for > {{{}org.apache.maven.api.model.Activation{}}}. > NOTE: This issue is not related to concurrency/threading (no {{-T}} option). > The bug comes from here: > [https://github.com/apache/maven/blob/d81b1b6a2870dc954d6d642500ad38e8e4cb3dde/impl/maven-impl/src/main/java/org/apache/maven/internal/impl/model/DefaultModelBuilder.java#L1876-L1878] > Since the code already changed on master for rc2 you can immediately close > this issue, but I could not find a MNG bug issue for "Duplicate key default". -- This message was sent by Atlassian Jira (v8.20.10#820010)