选择 maven-gpg-plugin 中使用的 GnuPG 密钥
Posted
技术标签:
【中文标题】选择 maven-gpg-plugin 中使用的 GnuPG 密钥【英文标题】:Select the GnuPG key used in maven-gpg-plugin 【发布时间】:2017-12-12 15:26:59 【问题描述】:我已经看到How to select the GnuPG key that the maven-gpg-plugin uses to sign artifacts? 和更多问题,但我仍然无法使这个 maven 插件工作。
我已经使用 gpg 创建了 2 个密钥,现在我可以通过以下操作看到它们:
$ gpg --list-secret-keys --keyid-format LONG
-----------------------------
sec rsa2048/835CAF6D1B0569EB 2017-12-12 [SC]
uid [ultimate] User 1 <email1@gmail.com>
ssb rsa2048/7604C74FE62682EF 2017-12-12 [E]
sec rsa2048/1330DF9E7C6D864E 2017-12-12 [SC]
uid [ultimate] User 2 <email2@gmail.com>
ssb rsa2048/09982A57EC4B5F18 2017-12-12 [E]
我的 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>1330DF9E7C6D864E</keyname>
<passphrase>supersecurepassword</passphrase>
</configuration>
</execution>
</executions>
</plugin>
但是当我执行“mvn package gpg:sign”时,它总是使用密钥 835CAF6D1B0569EB 站在https://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html,密钥名应该发送给 gpg -u/--local-user,但它似乎不起作用。 我也试过使用“gpgArguments”和“--default-key”,我试过“0x1330DF9E7C6D864E”和“0x1330DF9E7C6D864E!” (对文件的立场应该强制关键)。 它有什么问题?
谢谢
【问题讨论】:
> 但是当我执行“mvn package gpg:sign”时,它总是使用密钥 835CAF6D1B0569EB clean 添加到 maven 调用中。像这样:mvn clean package gpg:sign
【参考方案1】:
添加gpg
前缀。
<gpg.keyname>1330DF9E7C6D864E</gpg.keyname>
<gpg.passphrase>supersecurepassword</gpg.passphrase>
【讨论】:
gpg
前缀只有在通过属性传递配置时才需要。如果插件是直接配置的,那么<keyname>
是正确的(就像有问题的代码一样)。【参考方案2】:
您是否尝试仅使用签名密钥的最后 8 个字符 (7C6D864E
)?并且还试图追加到开头0x
(0x7C6D864E
)?
另外,请尝试检查签名密钥
gpg --list-signatures --keyid-format 0xshort
gpg --list-signatures --keyid-format 0xlong
gpg --list-signatures
gpg --list-signatures --keyid-format short
【讨论】:
以上是关于选择 maven-gpg-plugin 中使用的 GnuPG 密钥的主要内容,如果未能解决你的问题,请参考以下文章
在 Jenkins 下运行时,maven-gpg-plugin 失败并显示“设备的 ioctl 不合适”
Maven install 报错: Failed to execute goalorg.apache.maven.plugins:maven-gpg-plugin:1.4:sign (sign-art
maven-gpg-plugin:1.2:sign (sign-artifacts) on project jdbc-pool: Cannot obtain passphrase in batch m