使用 GnuPG 对项目的所有附加工件进行签名。
您需要事先配置默认密钥。
gpg也需要在搜索路径上。
首先,您将插件添加到您的pom.xml中,如下所示:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>然后在命令行上指定密码。像这样:
mvn verify -Dgpg.passphrase=thephrase
如果您未指定密码,它将提示您输入密码。
注意:当将 GPG 插件与 Maven 发布插件结合使用时,您可能需要像这样指定密码:
mvn release:perform -Darguments=-Dgpg.passphrase=thephrase
这解释了这样一个事实,即发布插件分叉 Maven 和当前 Maven 会话的系统属性很遗憾不会自动传播到分叉的 Maven 会话(另请参见MGPG-9)。
您可以将密码以明文或加密文本的形式放在本地settings.xml中,而不是在命令行上指定密码。
<settings>
[...]
<servers>
[...]
<server>
<id>gpg.passphrase</id>
<passphrase>clear or encrypted text</passphrase>
</server>
</servers>
</settings>要允许在构建时发现 keyname 和 passphrase,请配置此插件以将keyname和passphraseServerId映射到固定属性。
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<keyname>${gpg.keyname}</keyname>
<passphraseServerId>${gpg.keyname}</passphraseServerId>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
</project>并使用本地settings.xml通过密钥名发现密码
<settings>
[...]
<servers>
[...]
<server>
<id>your.keyname</id>
<passphrase>clear or encrypted text</passphrase>
</server>
</servers>
[...]
<profiles>
<profile>
<id>my_profile_id</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.keyname>your.keyname</gpg.keyname>
</properties>
</profile>
<profiles>
</settings>