我正在使用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。有关示例,请参见此构建。
mvn install
配置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 ...