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:
    • Similar Issues:
      Show 5 results

      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.

        Attachments

          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: