java抑制基于Maven的持续集成构建(Travis CI)的GPG签名
我正在使用Travis-CI为我正在从事的几个Java开源项目提供持续集成构建
通常情况下,这工作很顺利,但当POM指定GPG签名时,我遇到了一个问题,例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
这会导致Travis构建失败——显然是因为它在运行mvn install
时没有可用的密码短语。有关示例,请参见this build
配置Maven和/或Travis跳过CI测试构建的GPG签名,但在执行适当的发布构建时仍执行GPG签名的最佳方法是什么
# 1 楼答案
我找到了一个稍微简单一点的方法来使用above描述的概要文件。您可以使用gpg,而不是使用新的属性值。密码短语属性,在进行签名时无论如何都需要提供该属性。修改后的属性部分如下所示:
请注意,不需要任何值,因为如果为该属性设置了任何值,则希望激活该配置文件
相应的命令行如下所示:
您可以通过以下两种方式进行测试:
没有生成签名工件,并且:
创建签名工件
要执行工件的实际签名发布,请执行以下操作:
release操作需要间接寻址,因为它不会将命令行参数直接传播到生成的进程(请参见http://maven.apache.org/plugins/maven-gpg-plugin/usage.html)
# 2 楼答案
您需要创建一个配置文件&;确保只有在进行发布构建时才运行它
删除当前插件,并将其添加到如下配置文件中:
然后,当您实际需要发布时,将该属性添加到mvn命令中: