Я работаю над тем, чтобы Anonimatron был доступен как библиотека в центральном репозитории Maven. Для этого я следовал документации в документации по типу . Плагин nexus staging выдает ошибку 401 при запуске mvn deploy
, и я не могу понять, почему, потому что он не сообщает мне, что происходит.
У меня есть рабочая учетная запись на oss.sonatype.org , и я создал там токен доступа пользователя. Токен доступа хранится в разделе серверов моего maven ~/.m2/settings.xml
примерно так (токен удален по причинам):
<servers>
<server>
<id>ossrh</id>
<username>USER_TOKEN</username>
<password>USER_PASSPHRASE</password>
</server>
</servers>
Затем в моем файле maven https://github.com/realrolfje/anonimatron/blob/feature/anonimatron-as-library/pom.xml я добавил промежуточный плагин nexus:
<distributionManagement>
<snapshotRepository>
<id>sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>sonatype-release</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
</repository>
</distributionManagement>
[...]
<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>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>
Когда я запускаю mvn deploy
, я получаю сообщение об ошибке:
[ОШИБКА] Не удалось выполнить цель org.sonatype.plugins: nexus-staging-maven-plugin: 1.6.7: deploy (injected-nexus-deploy) на проекте anonimatron: не удалось развернуть артефакты: не удалось передать артефакт com .rolfje.anonimatron: anonimatron: jar: javadoc: 1.9.3-20180512.204932-1 из / в sonatype-snapshots (https://oss.sonatype.org/content/repositories/snapshots): Не удалось передать файл: https://oss.sonatype.org/content/repositories/snapshots/com/rolfje/anonimatron/anonimatron/1.9.3-SNAPSHOT/anonimatron-1.9.3-20180512.204932-1-javadoc.jar. Код возврата: 401, ReasonPhrase: Несанкционированный. -> [Помощь 1]
Чтобы проверить, действительно ли мой токен действителен, я попытался загрузить с помощью curl:
curl -u USER_TOKEN:USER_PASSPHRASE \
https://oss.sonatype.org/content/repositories/snapshots/com/rolfje/anonimatron/anonimatron/1.9.3-SNAPSHOT/anonimatron-1.9.3-20180512.093802-1-javadoc.jar \
--request PUT --data target/anonimatron-1.9.3-SNAPSHOT.jar
Это успешно, и я вижу, как загруженный файл JAR появляется в Nexus Repository Manager.
Я выполнил те же шаги, что и в этот вопрос , но так как я еще ничего не загрузил, номера версий не могут конфликтовать, хотя я делал загрузку javadoc вручную в конце. Поскольку это моментальный снимок, и он сработал, я думаю, что моя проблема с плагином nexus-staging-maven-plugin.
То, что я ищу, - это способ отладки плагина nexus-staging-maven-plugin, чтобы я знал, почему он не работает. Он не сообщает мне, какие учетные данные он использует, загружает ли он их из файла settings.xml и какие именно шаги он предпринимает, даже если я запускаю mvn с флагами -e и -X.