Развертывание артефакта Maven в репозиторий nexus завершается с ошибкой отсутствия ключа gpg

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

gpg: no default secret key: No secret key
gpg: signing failed: No secret key
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.886 s
[INFO] Finished at: 2021-06-14T14:12:29+05:30
[INFO] -----------------------------------------

Шаги, которым я следовал.

  1. Я установил gpg с помощью brew.
  2. версия gpg
      gpg (GnuPG) 2.3.1
      libgcrypt 1.9.3
    
  3. Я добавил файл settings.xml в путь к каталогу .m2 - ~/.m2/settings.xml
  4. Вот мой settings.xml file
<settings>
<servers>
 <server>
   <id>ossrh</id>
   <username>$name</username>
   <password>$password</password>
 </server>
</servers>
<profiles>
 <profile>
   <id>ossrh</id>
   <activation>
     <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
     <gpg.executable>gpg</gpg.executable>
     <gpg.passphrase>$passphrase</gpg.passphrase>
   </properties>
 </profile>
</profiles>
</settings>

  1. Я импортировал файл .asc, используя gpg --import file.asc

  2. когда я запускаю команду gpg --list-keys, я вижу значения ключей pub, uid и sub.

  3. Моя текущая версия mvn - Apache Maven 3.6.3

  4. Я обновил модуль своего проекта pom.xml со следующими значениями.

            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                        <configuration>
                            <!-- This is necessary for gpg to not try to use the pinentry programs -->
                            <gpgArguments>
                                <arg>--pinentry-mode</arg>
                                <arg>loopback</arg>
                            </gpgArguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


Можете ли вы помочь кому-нибудь, что не так с моей конфигурацией? Почему я получаю ошибку no default secret key: No secret key?

Я сослался на эту проблему, но все равно не повезло

Что делать с ошибкой Gnupg: gpg: нет секретного ключа по умолчанию: нет секретного ключа gpg: [stdin]: ошибка очистки знака: нет секретного ключа?


person Manjunath Davanam    schedule 14.06.2021    source источник
comment
Вы действительно включаете профиль ossrh? Что происходит, когда вы пытаетесь использовать -P ossrh?   -  person Karol Dowbecki    schedule 14.06.2021
comment
@KarolDowbecki Что означает -P? Должен ли я попробовать с mvn -P ? Не могли бы вы привести пример   -  person Manjunath Davanam    schedule 14.06.2021
comment
mvn clean deploy -P release Я пытался с помощью этой команды. Все та же ошибка, которую я вижу   -  person Manjunath Davanam    schedule 14.06.2021
comment
В чем может быть причина того, что ключи не читаются? Все ли мои шаги верны? я ничего не пропустил?   -  person Manjunath Davanam    schedule 14.06.2021


Ответы (1)


Когда я пытаюсь перечислить секреты, он не показывает мои секреты gpg --list-secret.

На самом деле, когда я пытаюсь перечислить ключи с помощью gpg --list-keys, он показывал значения. Я предположил, что файл ASC импортируется без каких-либо проблем. Но на самом деле он не импортировал файл ASC должным образом, я пропустил один шаг при вводе пароля при импорте файла ASC. Я узнал, выполнив команду gpg --list-secret.

Когда вы выполняете команду gpg --list-secret и gpg --list-keys, она должна отображать значения, тогда только файл ASC импортируется правильно.

person Manjunath Davanam    schedule 14.06.2021