Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-11248

Build fails on "Deploy artifacts to Maven repository" due to trying to upload parent POM twice for release artifacts

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Component/s: deploy-plugin, maven-plugin
    • Labels:
      None
    • Environment:

      Description

      Scenario: We have several sets of Java OSGi services with a parent pom and 4 child projects/poms. The parent pom does not generate any JARs, but each of the children generates a jar.Something like the following:

      project_folder/
        |_servicename.business/
        |   \_pom.xml
        |_servicename.jms/
        |   \_pom.xml
        |_servicename.model/
        |   \_pom.xml
        |_servicename.webservice/
        |   \_pom.xml
        \_pom.xml
      

      Each of these services is setup as a separate Jenkins job, and the maven dependencies are turned on so they all build in the appropriate order.

      Within the parent pom we have our <distributionManagement> section defined so we can run the mvn deploy goals to upload artifacts to our maven repository.

      Up until this point we have only been building SNAPSHOTS, for which the Nexus repository allows redeploying of artifacts.

      WHAT IS GOING WRONG:
      The other day we tried to build our first release version of some of the services, and the deployment into the Nexus maven repository failed on the "Deploy artifacts to Maven repository" task.

      Looking at the Console Output of the failed job, for some reason Jenkins is trying to deploy the parent POM a second time. Nexus refuses this, as it does not allow redeploying of release artifacts. Below is an excerpt from the output of one of those jobs:

      [INFO] ------------------------------------------------------------------------
      [INFO] BUILD SUCCESS
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 52.240s
      [INFO] Finished at: Thu Oct 06 14:55:37 GMT 2011
      [INFO] Final Memory: 63M/151M
      [INFO] ------------------------------------------------------------------------
      channel stopped
      Maven RedeployPublished use remote maven settings from : /opt/maven/conf/settings.xml
      [ERROR] uniqueVersion == false is not anymore supported in maven 3
      [INFO] Deployment in dav:http://maven.luthresearch.net/nexus/content/repositories/releases/ (id=com.luthresearch,uniqueVersion=false)
      Deploying the main artifact savvyconnect-1.0.1.pom
      Uploading: dav:http://maven.luthresearch.net/nexus/content/repositories/releases/com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom
      Uploaded: dav:http://maven.luthresearch.net/nexus/content/repositories/releases/com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom (3 KB at 24.4 KB/sec)
      Uploading: http://maven.luthresearch.net/nexus/content/repositories/releases/com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom
      ERROR: Failed to deploy artifacts: Could not transfer artifact com.luthresearch.savvyconnect:savvyconnect:pom:1.0.1 from/to com.luthresearch (dav:http://maven.luthresearch.net/nexus/content/repositories/releases/): Failed to transfer file: http://maven.luthresearch.net/nexus/content/repositories/releases//com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom. Return code is: 400
      org.apache.maven.artifact.deployer.ArtifactDeploymentException: Failed to deploy artifacts: Could not transfer artifact com.luthresearch.savvyconnect:savvyconnect:pom:1.0.1 from/to com.luthresearch (dav:http://maven.luthresearch.net/nexus/content/repositories/releases/): Failed to transfer file: http://maven.luthresearch.net/nexus/content/repositories/releases//com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom. Return code is: 400
      at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:141)
      at hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:189)
      at hudson.maven.RedeployPublisher.perform(RedeployPublisher.java:158)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
      at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:693)
      at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:668)
      at hudson.maven.MavenModuleSetBuild$RunnerImpl.post2(MavenModuleSetBuild.java:987)
      at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:615)
      at hudson.model.Run.run(Run.java:1428)
      at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:478)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:230)
      Caused by: org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact com.luthresearch.savvyconnect:savvyconnect:pom:1.0.1 from/to com.luthresearch (dav:http://maven.luthresearch.net/nexus/content/repositories/releases/): Failed to transfer file: http://maven.luthresearch.net/nexus/content/repositories/releases//com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom. Return code is: 400
      at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:284)
      at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:215)
      at org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:480)
      at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:137)
      ... 11 more
      Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact com.luthresearch.savvyconnect:savvyconnect:pom:1.0.1 from/to com.luthresearch (dav:http://maven.luthresearch.net/nexus/content/repositories/releases/): Failed to transfer file: http://maven.luthresearch.net/nexus/content/repositories/releases//com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom. Return code is: 400
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:949)
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:940)
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.flush(WagonRepositoryConnector.java:864)
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:466)
      at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:278)
      ... 14 more
      Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://maven.luthresearch.net/nexus/content/repositories/releases//com/luthresearch/savvyconnect/savvyconnect/1.0.1/savvyconnect-1.0.1.pom. Return code is: 400
      at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:368)
      at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:280)
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:825)
      at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:465)
      ... 15 more
      [INFO] Deployment failed after 0.27 sec
      Build step 'Deploy artifacts to Maven repository' changed build result to FAILURE
      Sending e-mails to: devstaff@luthresearch.com
      Finished: FAILURE

      CONFIRMATION OF ISSUE:
      I logged into the build server, went to the project in the Jenkins workspace, deleted the existing release artifacts from the maven repository, and manually ran the mvn deploy goal. It succeeded in uploading all of the artifacts including the JARs.

      WORKAROUND:
      I disabled the "Post-Build Actions"->"Deploy artifacts to Maven repository."
      I then setup a "Post Steps"->"Invoke top-level Maven target" task with the Maven goal of "deploy". (I believe this functionality is provided by the Jenkins M2 Extra Steps Plugin. https://wiki.jenkins-ci.org/display/JENKINS/M2+Extra+Steps+Plugin)
      Using the post build step to execute the deploy goal succeeds in successfully uploading all of the artifacts.

        Issue Links

          Activity

          Hide
          trekoid Michael Rasmussen added a comment -

          Alexander Potapov No, we were not trying to deploy snapshots to our releases repository. We have both http://<hostname>/nexus/content/repositories/releases/ and http://<hostname>/nexus/content/repositories/snapshots/ properly defined in our POMs for deploying.

          Anyway, there was a fix released for this in 1.449. We are still on 1.447, so I haven't had a chance to confirm and close the bug.

          Show
          trekoid Michael Rasmussen added a comment - Alexander Potapov No, we were not trying to deploy snapshots to our releases repository. We have both http://<hostname>/nexus/content/repositories/ releases / and http://<hostname>/nexus/content/repositories/ snapshots / properly defined in our POMs for deploying. Anyway, there was a fix released for this in 1.449. We are still on 1.447, so I haven't had a chance to confirm and close the bug.
          Hide
          trekoid Michael Rasmussen added a comment -

          Michael Rasmussen has tested with his installation and is no longer seeing the issue.

          Show
          trekoid Michael Rasmussen added a comment - Michael Rasmussen has tested with his installation and is no longer seeing the issue.
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: olivier lamy
          Path:
          maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java
          http://jenkins-ci.org/commit/jenkins/1d2012b792fbd865953cf5c51ee95ddbe189758c
          Log:
          JENKINS-11248 Build fails on "Deploy artifacts to Maven repository" due to trying to upload parent POM twice for release artifacts.

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: olivier lamy Path: maven-plugin/src/main/java/hudson/maven/reporters/MavenArtifact.java http://jenkins-ci.org/commit/jenkins/1d2012b792fbd865953cf5c51ee95ddbe189758c Log: JENKINS-11248 Build fails on "Deploy artifacts to Maven repository" due to trying to upload parent POM twice for release artifacts.
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: olivier lamy
          Path:
          changelog.html
          http://jenkins-ci.org/commit/jenkins/53cea6a0810ff28ba0e6887532260496e6a69846
          Log:
          changelog entry for JENKINS-11248

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: olivier lamy Path: changelog.html http://jenkins-ci.org/commit/jenkins/53cea6a0810ff28ba0e6887532260496e6a69846 Log: changelog entry for JENKINS-11248
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: olivier lamy
          Path:
          src/main/java/hudson/maven/reporters/MavenArtifact.java
          http://jenkins-ci.org/commit/maven-plugin/3ba1e207f288d4be77f86485bd8db7d891b3127e
          Log:
          JENKINS-11248 Build fails on "Deploy artifacts to Maven repository" due to trying to upload parent POM twice for release artifacts.

          Originally-Committed-As: 1d2012b792fbd865953cf5c51ee95ddbe189758c

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: olivier lamy Path: src/main/java/hudson/maven/reporters/MavenArtifact.java http://jenkins-ci.org/commit/maven-plugin/3ba1e207f288d4be77f86485bd8db7d891b3127e Log: JENKINS-11248 Build fails on "Deploy artifacts to Maven repository" due to trying to upload parent POM twice for release artifacts. Originally-Committed-As: 1d2012b792fbd865953cf5c51ee95ddbe189758c

            People

            • Assignee:
              olamy olamy
              Reporter:
              trekoid Michael Rasmussen
            • Votes:
              3 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: