我有一个pom,它可以获得拉链,解包并部署内部的5个工件(jar + pom)。
它看起来像:
queryForList("select * from tb_user where name=? and sex=?", List<MapperClass> , List<User>);
所以我有5个不同的工件执行5次。
它适用于第一个工件但随后失败,因为它尝试再次上传:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>none</phase>
</execution>
<execution>
<id>deploy-api-jar</id>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>target/xxx.jar</file>
<pomFile>target/xxx/pom.xml</pomFile>
<sources>target/xxx-sources.jar</sources>
<repositoryId>${nexus-repository-id}</repositoryId>
<url>http://${nexus.deploy.server}/${nexus-repository-path}</url>
</configuration>
</execution>
由于[INFO] Uploading: http://www.zzz.com:8081/nexus/content/repositories/mobile-r/xxx/server/deployall/8.1.17/deployall-8.1.17-dependencies.dot
8.1.17已部署,因此400 BadRequest
失败。
为什么尝试在每个工件之间上传depedencies.dot
?我可以禁用它吗?
答案 0 :(得分:1)
编辑:回答错过了这一点
它失败了,因为Maven和你的nexus只允许给定一组坐标的一个工件。
因此,如果要将它们全部部署到相同的坐标,则需要为它们提供不同的分类。
您要做的是对构建脚本的高度不规则使用。 Maven假设来自单个POM的所有工件具有相同的坐标(但是不同的分类器)。如果需要,可以将工件附加到项目中,并使用生命周期中的常规deploy:deploy
任务上载它们。您可以使用build-helper-maven-plugin:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>file1</file>
<type>extension of your file</type>
<classifier>x</classifier>
</artifact>
<artifact>
<file>file2</file>
<type>extension of your file</type>
<classifier>y</classifier>
</artifact>
...
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
但是,由于您要上传5个析取工件,POM不是您想要的,而是使用bash脚本代替上传(多次调用mvn deploy:deploy-file
)。