我设法以某种方式构建Maven项目,使发布部署工件成倍增加或完全消失。
由于该项目使用了我们公司的抽象父pom,因此发布相关代码有些困难,但是我会尽力的。
第一件事。父pom具有以下定义:
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<deployAtEnd>true</deployAtEnd>
</configuration>
</plugin>
在实际项目中未定义任何内容,发布将在以下行之后失败:
[INFO] [INFO] Uploaded to our_repo: http://acme.org/nexus/content/repositories/org.acme.project/1.0.0/org.acme.project-1.0.0-sources.jar (14 kB at 3.8 kB/s)
[INFO] [INFO] Uploading to our_repo: http://acme.org/nexus/content/repositories/org.acme.project/1.0.0/org.acme.project-1.0.0-sources.jar
我们的仓库不喜欢拥有两个具有相同版本的发布JAR,因此一切都会失败。这里的怪异之处在于部署还没有结束。实际上,该项目的构建失败了一半。
但是,如果我将上述插件复制到项目中,则该版本将在同一位置打印Deploying repo:org.acme.repo:1.0.0 at end
,然后在末尾不进行部署。
但是我什至不确定那是问题的一部分。尽管如此,无论插件定义在哪里,我都认为这两个版本应该完全一样。
我找到了this question,这使我在有效pom中检查了maven-source-plugin
。但是,那里没有重复项:
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
在maven-assembly-plugin
中也未定义任何内容,因此未添加用于部署的JAR(在this question中建议)。
使用Java 10或Maven 3.5.2可能与我们有关,尽管老实说,我在测试内容和进度上感到困惑。
如何解决此问题? (如果您想了解有关构建的更多信息,请问。 pom.xml 是在此处共享它们的一种方法。)
答案 0 :(得分:0)
受that question的启发,我试图禁用发布配置文件,现在它可以以某种方式工作。对于这种行为,我无法做出任何解释。
用于删除发行资料的摘录:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>