Gradle задача uploadArchives не может читать секретный ключ

Я создал проект Gradle, и все работает нормально, но когда я пытаюсь загрузить его в свой репозиторий Maven, я получаю следующую ошибку Gradle:

FAILURE: Build failed with an exception.

* What went wrong:
Could not evaluate onlyIf predicate for task ':library:signArchives'.
> Unable to read secret key from file: C:\Users\ideal\pubring.gpg (it may not be a PGP secret key ring)

Я следовал инструкциям в Sonatype, чтобы сгенерировать ключ, а затем скопировал его из сгенерированного местоположения в местоположение, указанное выше. Я также опубликовал открытый ключ к хранилищу ключей MIT. Файл gradle.properties в моем пользовательском каталоге содержит следующие записи, связанные с gradle.properties для ключей:

signing.keyId=MY_KEY_ID
signing.password=MY_KEY_PASSWORD
signing.secretKeyRingFile=C:\\Users\\ideal\\pubring.gpg

Это на платформе Windows. Я попытался найти сообщение об ошибке, но единственное, что появляется, это исходные файлы для соответствующих плагинов.

Ответ 1

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

C:\Users\идеал\secring.gpg

Ответ 2

Файл secring.gpg был удален в GPG 2.1.

Однако GPG все еще может создать такой файл: gpg --export-secret-keys -o secring.gpg

Pro Tip: Если Gradle signing plugin жалуется, что ваш ключ в signing.keyId=MY_KEY_ID слишком длинный, вы, конечно, используете отпечаток на 40 символов, но вас попросят ввести 8 char Я БЫ. У вас есть два варианта:

  • Вы можете настроить GPG, чтобы показать 8 char ID вместо отпечатка пальца, установив опцию keyid-format.

    • Явно определить этот параметр в CLI: gpg --list-keys --keyid-format short (Спасибо tjheslin1!)
    • Сделать этот параметр неявно активным с помощью файла параметров (по умолчанию "~/.gnupg/gpg.conf" ).
  • Попробуйте последние 8 цифр вашего отпечатка пальца на 40 символов. Это для ленивого разработчика; -)

Ответ 3

Файл "secring.gpg" может не понадобиться в GPG 2.1 и более поздних версиях и может быть создан с помощью команд: "gpg --export-secret-keys -o\dir\secring.gpg"