Inside MDEP-44 is a maven-project patch that resolves an issue getting
attached artifacts from a reactor project. In the spirit of asking, can
someone peek at the patch below and tell me if this is ok to commit?

 

Thanks,

Brian

 

Index: src/main/java/org/apache/maven/project/MavenProject.java

===================================================================

--- src/main/java/org/apache/maven/project/MavenProject.java (revision
411602)

+++ src/main/java/org/apache/maven/project/MavenProject.java (working
copy)

@@ -1611,6 +1611,7 @@

                     if ( ref.getArtifact().getFile() != null &&
ref.getArtifact().getFile().exists() )

                     {

                         pluginArtifact = new ActiveProjectArtifact(
ref, pluginArtifact );

+                        return pluginArtifact;

                     }

                     else

                     {

@@ -1620,6 +1621,35 @@

 */

                     }

                 }

+

+                Iterator itr = ref.getAttachedArtifacts().iterator();

+                while(itr.hasNext()) {

+                    Artifact attached = (Artifact) itr.next();

+                    if(
attached.getDependencyConflictId().equals(pluginArtifact.getDependencyCo
nflictId()) ) {

+                        /* TODO: if I use the original, I get an
exception below:

+                            java.lang.UnsupportedOperationException:
Cannot change the download information for an attached artifact. It is
derived from the main artifact.

+                            at
org.apache.maven.project.artifact.AttachedArtifact.setDownloadUrl(Attach
edArtifact.java:89)

+                            at
org.apache.maven.project.artifact.MavenMetadataSource.retrieve(MavenMeta
dataSource.java:205)

+                            at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.recurse(Defa
ultArtifactCollector.java:275)

+                            at
org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(Defa
ultArtifactCollector.java:67)

+                            at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransi
tively(DefaultArtifactResolver.java:223)

+                            at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransi
tively(DefaultArtifactResolver.java:211)

+                            at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransi
tively(DefaultArtifactResolver.java:182)

+                            at
org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependenci
es(DefaultPluginManager.java:1117)

+                            at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginMa
nager.java:366)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Default
LifecycleExecutor.java:534)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifec
ycle(DefaultLifecycleExecutor.java:475)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultL
ifecycleExecutor.java:454)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandle
Failures(DefaultLifecycleExecutor.java:306)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:273)

+                            at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifec
ycleExecutor.java:140)

+                            at
org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)

+                            at
org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)

+                            at
org.apache.maven.cli.MavenCli.main(MavenCli.java:256)

+                        */

+                        return ArtifactUtils.copyArtifact(attached);

+                    }

+                }

             }

         }

         return pluginArtifact;

 

Reply via email to