【问题标题】:How to sign with gradle and gpg2如何使用 gradle 和 gpg2 签名
【发布时间】:2015-09-28 05:06:12
【问题描述】:

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的签名插件?

【问题讨论】:

    标签: gradle gnupg


    【解决方案1】:

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

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

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

    编辑:我忘了说,我使用的是 Linux。

    【讨论】:

    • 事实上这行不通。生成的文件不是有效的密钥环,Gradle 拒绝它(Gralde 2.11)。
    • 为我工作。但是我没有将输出通过管道传输到文件,而是使用 GPG 的 -o 选项让它为我编写文件;-)
    【解决方案2】:

    我也遇到了 gpg --export-secret-key 无法解决的问题,就像这样。

    gpg:警告:未导出任何内容

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

    所以试试这个:

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

    【讨论】:

    • 在 Mac 上我必须使用 gpg --export-secret-keys > ~/.gnupg/secring.gpg
    • 我使用了gpg --export-secret-key XXXXXXXX > secring.gpg,它对我有用
    【解决方案3】:

    对于 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.*)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 2017-11-21
      • 2014-01-22
      • 1970-01-01
      • 2019-06-24
      • 2013-07-02
      • 1970-01-01
      相关资源
      最近更新 更多