我正在使用Apache Maven GPG插件maven-gpg-plugin生成所需的签名,以便通过OSSRH发布到Maven Central。我在pom.xml的插件定义如下所示,我的OSSRH凭证位于Maven conf/settings.xml,一切正常。但是,当另一个开发人员尝试mvn install时,他失败了,因为他没有安装GPG。我希望避免需要安装GPG,除非开发人员进行部署,可能是通过在构建过程中忽略maven-gpg- pom.xml错误或通过任何其他方式,这样我就不需要有两个插件,一个有插件,另一个没有插件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
<passphraseServerId>${gpg.passphrase}</passphraseServerId>
</configuration>
</execution>
</executions>
</plugin>发布于 2017-07-31 04:38:15
您可以在pom中添加一个配置文件,并在其中定义maven-gpg-plugin的执行:
<project>
...
<profiles>
<profile>
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
<passphraseServerId>${gpg.passphrase}</passphraseServerId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>只有在配置文件处于活动状态时,此插件才会被添加到构建过程中。您可以通过调用Maven激活配置文件,如下所示:
mvn install -P sign除了手动激活配置文件外,还可以根据环境变量或特定文件的存在等条件自动激活配置文件。您可以在Maven introduction on profiles中找到有关这方面的更多信息。
在您的案例中,一种选择可能是在找到特定于GPG的文件时启用配置文件:
<profile>
<id>sign</id>
<activation>
<file>
<exists>${user.home}/.gnupg/secring.gpg</exists>
</file>
</activation>
...
</profile>我没有测试上面的代码,根据您使用的GPG版本和您的系统环境,您需要检查的实际文件可能会有所不同。
https://stackoverflow.com/questions/45402095
复制相似问题