Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-2877

unable to resolve attached artifacts from reactor that are not in repo. (patch applied in svn and IT tests added)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.2, 2.0.3, 2.0.4, 2.0.5
    • 2.0.6
    • None

    Description

      The patch has been applied here: https://svn.apache.org/repos/asf/maven/components/branches/maven-project-mdep64

      and the IT tests are already added to core-it but commented out from the suite. To enable it, uncomment this line: //suite.addTestSuite( MavenIT0118AttachedArtifactsInReactor.class );

      -----------------------

      This is from MDEP-64:

      We have a project with a few sub-projects. Only one of those subprojects uses the maven-dependency-plugin, copying the jar file artifact from one of the sibling sub-projects. The dependency plugin has worked fine in another multi-project m2 buld and release when the dependency copy was only referencing projects outside the multi-project's project tree.

      But in the present multi-project release, copying that sibling jar file with the dependency plugin causes the mvn release:prepare step to fail, because it can't find the released version in the release repository. It doesn't care about referencing sibling project dependencies from the regular pom dependencies, it only chokes for the dependency:copy.

      Here's a diagram for the issue with three pseudo-poms. I omitted groupId's, scm, distributionManagement, and other content from the poms that were not necessary to communicate the basic issue. I've worked around this by using the antrun plugin, which is unpleasant and untidy. This seems like it might be related to MDEP-44.

      superproject/
      A/ -> no dependencies
      B/ -> dependency:copy A

      //superproject/pom.xml (abbrieviated)
      <project>
      <artifactId>superproject</artifactId>
      <packaging>pom</packaging>
      <version>1.0.0.1-SNAPSHOT</version>
      <modules>
      <module>A</module>
      <module>B</module>
      </modules>
      </project>

      // superproject/A/pom.xml (abbrievated)
      <project>
      <parent>
      <artifactId>superproject</artifactId>
      <version>1.0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>A</artifactId>
      <version>1.0.0.1-SNAPSHOT</version>
      </project>

      // superproject/B/pom.xml (abbreviated)
      <project>
      <parent>
      <artifactId>superproject</artifactId>
      <version>1.0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>B</artifactId>
      <packaging>war</packaging>
      <version>1.0.0.1-SNAPSHOT</version>

      <build>
      <finalName>FooWar</finalName>
      <plugins>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
      <execution>
      <id>copy</id>
      <goals>
      <goal>copy</goal>
      </goals>
      <phase>package</phase>
      <configuration>
      <artifactItems>
      <artifactItem>
      <artifactId>A</artifactId>
      <version>${pom.version}</version>
      <type>jar</type>
      </artifactItem>
      </artifactItems>
      <outputDirectory>${project.build.directory}/${pom.build.finalName}/jars</outputDirectory>
      </configuration>
      </execution>
      </executions>
      </plugin>
      </plugins>
      </build>

      <dependencies>
      <dependency>
      <artifactId>A</artifactId>
      <version>${pom.version}</version>
      </dependency>
      </dependencies>
      </project>

      The error message during mvn release:prepare is basically:
      [INFO] Building B
      [INFO] task-segment: [clean, integration-test]
      [INFO] ----------------------------------------------------------------------------
      [INFO] [clean:clean] <skip deleting directories>
      [INFO] [dependency:copy

      {execution: copy}

      ]
      [INFO] Configured Artifact: <groupId>:A:null:1.0.0.1:jar
      Downloading: <details>/1.0.0.1/A-1.0.0.1.jar
      [WARNING] Unable to get resource from repository sizzle (<our repository details>)
      [INFO] ------------------------------------------------------------------------
      [ERROR] BUILD ERROR
      [INFO] ------------------------------------------------------------------------
      [INFO] Failed to resolve artifact.

      GroupId: <groupId>
      ArtifactId: A
      Version: 1.0.0.1

      Reason: Unable to download the artifact from any repository

      Attachments

        1. test-bug-maven-release.zip
          3 kB
          Julien HENRY

        Issue Links

          Activity

            People

              jvanzyl Jason van Zyl
              brianf Brian E Fox
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: