如何用gradle和gpg2签名

时间:2015-09-28 05:06:12

标签: gradle gnupg

gradle签名插件需要secring.gpg密钥环文件,根据文档:https://docs.gradle.org/current/userguide/signing_plugin.html

但是自从gpg 2.1版以后,secring.gpg不再存在了。 https://www.gnupg.org/faq/whats-new-in-2.1.html

是否有可能使用gradle的签名插件gpg> = 2.1?

3 个答案:

答案 0 :(得分:7)

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

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

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

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

答案 1 :(得分:3)

我也面临同样的问题,我无法用gpg --export-secret-key来解决这个问题。

  

gpg:警告:没有导出

实际上我的gpg版本是1.4.xx(gpg --version),还有另一个版本: gpg2

所以试试这个:

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

答案 2 :(得分:0)

对于从2017年起从Gradle 4.5开始达到此问题的人们,完全支持使用GnuPG 2(和gpg-agent)。来自签名插件documentation

signing {
    useGpgCmd()
    sign configurations.archives
}

此外,必须(至少)定义signing.gnupg.keyName(最有可能在~/.gradle/gradle.properties中定义)。

请注意,已定义键(signing.gnupg.keyName),键存储(signing.gnupg.homeDir),密码(signing.gnupg.passphrase)等的属性与以前的Gradle版本中使用的属性不同(不仅在signing.gnupg.*中,而且在signing.*中。