-
Bug
-
Resolution: Fixed
-
Major
-
None
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.
- is related to
-
JENKINS-3256 maven job does not deploy jar artifacts
- Open
-
JENKINS-2998 Unable to deploy jar to maven repository.
- Resolved