使用 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>