我们正在使用hudson上的maven发布插件并尝试自动执行发布过程.发布:准备工作正常.当我们尝试执行release:perform时,它会失败,因为它会尝试将源工件两次上传到存储库.
我试过的东西,
它仍然吐出这个错误.
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Checking for pre-existing User-Agent configuration.
[INFO] [DEBUG] Adding User-Agent configuration.
[INFO] [DEBUG] not adding permissions to wagon connection
[INFO] Uploading: http://xx.xx.xx.xx:8081/nexus/content/repositories/releases//com/yyy/xxx/hhh/hhh-hhh/1.9.40/hhh-hhh-1.9.40-sources.jar
[INFO] 57K uploaded (xxx-xxx-1.9.40-sources.jar)
[INFO] [DEBUG] Using Wagon implementation lightweight from default mapping for protocol http
[INFO] [DEBUG] Using Wagon implementation lightweight from default …Run Code Online (Sandbox Code Playgroud) 当我mvn release:perform在父POM上执行时,服务器正在响应有关其中一个子项目(文件名已编辑)的错误:
[错误]无法在项目上执行目标org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file(default-cli):无法部署工件:无法将工件从/向存储库传输:无法转移文件.返回码为:400,ReasonPhrase:错误请求.
但是,此子项目的所有文件都已成功上载!我看到一个新目录(以发行版本号命名),它包含了人们所期望的所有.jar,.pom,.md5和.sha1文件.
我无法访问Nexus服务器,但我想知道是什么原因造成的,以及如何解决它.是否有可能Maven试图两次上传这个特定的子项目?如果是这样,为什么Maven会这样做,我怎么能阻止它呢?
更新:如果你有同样的问题,请与最upvotes答案这个职位.我跑了mvn help:effective-pom,发现有问题的项目实际上有两次部署阶段的执行.删除其中一个执行解决了我的问题.
将组件发布到Nexus存储库时遇到问题,Maven上传文件两次:
我使用以下命令启动打包/部署(请参阅底部的pom.xml文件):
mvn clean package deploy:deploy-file -e -f pom.xml
这是处理部署阶段时maven输出控制台的片段(6个第一行是正确的,但注意到最后两行有pom groupId/artifactId/version):
[INFO] --- maven-deploy-plugin:2.8.2:deploy-file (default-cli) @ assemblage-playbook ---
Uploading: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/1.0/COMPOSANT-A_1.0.tar.gz
Uploaded: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/1.0/COMPOSANT-A_1.0.tar.gz (2 KB at 2.7 KB/sec)
Downloading: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/maven-metadata.xml
Downloaded: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/maven-metadata.xml (321 B at 4.6 KB/sec)
Uploading: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/maven-metadata.xml
Uploaded: http://urlRepo:8080/nexus/content/repositories/snapshots/COMPOSANTS/COMPOSANT-A/maven-metadata.xml (321 B at 1.6 KB/sec)
Downloading: http://urlRepo:8080/nexus/content/repositories/snapshots/com/com.mycompany/assemblage-playbook/1.0-SNAPSHOT/maven-metadata.xml
Uploading: http://urlRepo:8080/nexus/content/repositories/snapshots/com/com.mycompany/assemblage-playbook/1.0-SNAPSHOT/assemblage-playbook-1.0-20150209.154427
Run Code Online (Sandbox Code Playgroud)
这是我的pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>assemblage-playbook</artifactId>
<packaging>pom</packaging>
<name>assemblage-playbook</name>
<parent>
<groupId>com.mycompany</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../../parent/pom.xml</relativePath>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<descriptors>
<descriptor>assembly/playbook-assembly.xml</descriptor>
</descriptors>
<finalName>COMPOSANT-A-1.0</finalName> …Run Code Online (Sandbox Code Playgroud)