我正在使用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签名的最佳方法是什么?
最佳答案
您需要创建一个配置文件,并确保仅在执行发行版本时才运行该配置文件。
删除当前插件,然后将其添加到如下配置文件中:
<profiles>
<profile>
<id>release-sign-artifacts</id>
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<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>
</plugins>
</build>
</profile>
</profiles>
然后,当您实际需要发布时,将该属性添加到mvn命令中:
mvn -DperformRelease=true ...