Как подписать с 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.*
).