Как подписать с gradle и gpg2

Плагин Gradle для подписи требует файл ключей keyring.gpg, в соответствии с документацией: https://docs.gradle.org/current/userguide/signing_plugin.html

Но, начиная с версии 2.1 gpg, secring.gpg больше не существует. https://www.gnupg.org/faq/whats-new-in-2.1.html

Есть ли возможность использовать подписывающий плагин gradle с gpg >= 2.1?

2 ответа

Решение

Я только что столкнулся с той же проблемой и решил ее вручную, создав файл secring.gpg, выполнив следующую команду терминала:

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

Вы должны заменить XXXXXXXX идентификатором ключа, который вы хотите использовать. Вы можете перечислить все доступные ключи с помощью команды gpg --list-key,

Изменить: я забыл упомянуть, что я использую Linux.

Я также столкнулся с той же проблемой, которую я не мог решить с gpg --export-secret-key, как это.

gpg: ВНИМАНИЕ: ничего не экспортируется

На самом деле версия моего gpg была 1.4.xx (с gpg --version) и там было другое: gpg2.

Так что попробуйте это:

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

Для людей, столкнувшихся с этой проблемой в 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.*).

Другие вопросы по тегам