如何使用 gradle 和 gpg2 签名
How to sign with gradle and gpg2
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
是否可以在 gpg >= 2.1 下使用 gradle 的签名插件?
我刚遇到同样的问题,通过执行以下终端命令手动创建 secring.gpg 文件解决了这个问题:
gpg --keyring secring.gpg --export-secret-key XXXXXXXX > secring.gpg
您必须将 XXXXXXXX 替换为您要使用的密钥的 ID。您可以使用命令 gpg --list-key
.
列出所有可用键
编辑:我忘了说,我正在使用 Linux。
我也遇到了用 gpg --export-secret-key
无法解决的问题,就像这样。
gpg: WARNING: nothing exported
实际上我的 gpg 版本是 1.4.xx(gpg --version
)还有另一个:gpg2.
所以试试这个:
gpg2 --export-secret-key XXXXXXXX > secring.gpg
对于在 2017 年以后遇到此问题的人,从 Gradle 4.5 开始,完全支持使用 GnuPG 2(和 gpg-agent)。来自签名插件 documentation:
signing {
useGpgCmd()
sign configurations.archives
}
此外,必须定义(至少)signing.gnupg.keyName
(最有可能在~/.gradle/gradle.properties
)。
请注意定义的key(signing.gnupg.keyName
)、key store(signing.gnupg.homeDir
)、passphrase(signing.gnupg.passphrase
)等属性与之前使用的不同Gradle 个版本(在 signing.gnupg.*
中,而不仅仅是 signing.*
)。
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
是否可以在 gpg >= 2.1 下使用 gradle 的签名插件?
我刚遇到同样的问题,通过执行以下终端命令手动创建 secring.gpg 文件解决了这个问题:
gpg --keyring secring.gpg --export-secret-key XXXXXXXX > secring.gpg
您必须将 XXXXXXXX 替换为您要使用的密钥的 ID。您可以使用命令 gpg --list-key
.
编辑:我忘了说,我正在使用 Linux。
我也遇到了用 gpg --export-secret-key
无法解决的问题,就像这样。
gpg: WARNING: nothing exported
实际上我的 gpg 版本是 1.4.xx(gpg --version
)还有另一个:gpg2.
所以试试这个:
gpg2 --export-secret-key XXXXXXXX > secring.gpg
对于在 2017 年以后遇到此问题的人,从 Gradle 4.5 开始,完全支持使用 GnuPG 2(和 gpg-agent)。来自签名插件 documentation:
signing {
useGpgCmd()
sign configurations.archives
}
此外,必须定义(至少)signing.gnupg.keyName
(最有可能在~/.gradle/gradle.properties
)。
请注意定义的key(signing.gnupg.keyName
)、key store(signing.gnupg.homeDir
)、passphrase(signing.gnupg.passphrase
)等属性与之前使用的不同Gradle 个版本(在 signing.gnupg.*
中,而不仅仅是 signing.*
)。