如何使用gradle和gpg2进行签名

7
3个回答

11

我刚遇到了同样的问题,通过执行以下终端命令手动创建一个secring.gpg文件来解决:

gpg --keyring secring.gpg --export-secret-key XXXXXXXX > secring.gpg

您需要使用密钥的ID替换XXXXXXXX。您可以使用命令gpg --list-key列出所有可用密钥。

编辑:我忘了提到,我正在使用Linux。


事实上,这并不起作用。生成的文件不是有效的密钥环,Gradle会拒绝它(Gralde 2.11)。 - Thibaut D.
对我来说有效。但是我使用了GPG的-o选项,让它为我写入文件,而不是将输出导向文件;-) - Peter Wippermann

3

我也遇到了同样的问题,无法通过gpg --export-secret-key解决,结果得到以下警告:

gpg: WARNING: nothing exported

实际上,我的gpg版本是1.4.xx(使用gpg --version查看),还有一个叫做gpg2的版本。

因此,请尝试以下步骤:

gpg2 --export-secret-key XXXXXXXX > secring.gpg

在 Mac 上,我必须使用以下命令: gpg --export-secret-keys > ~/.gnupg/secring.gpg - Sergey Dryganets
我使用了 gpg --export-secret-key XXXXXXXX > secring.gpg,并且它对我起作用了。 - user861594

1

如果您在2017年或之后遇到此问题,从Gradle 4.5开始,完全支持使用GnuPG 2(和gpg-agent)。来自签名插件文档的说明:

signing {
    useGpgCmd()
    sign configurations.archives
}

此外,必须定义(至少)signing.gnupg.keyName(很可能在~/.gradle/gradle.properties中)。请注意,用于定义密钥(signing.gnupg.keyName)、密钥库(signing.gnupg.homeDir)、密码(signing.gnupg.passphrase)等属性与先前Gradle版本中使用的不同(在signing.gnupg.*而不仅仅是signing.*中)。

如果这是真实准确的,那么更新Gradle文档将非常好。它仍然显示旧值-https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials - Steve Ebersole
就我所知,无论我使用哪种形式,我目前都会遇到相同的失败 - https://github.com/gradle-nexus/nexus-publish-e2e-minimal/issues/1 - Steve Ebersole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接