nexus-staging-maven-plugin возвращает 401 без информации - PullRequest
0 голосов
/ 13 мая 2018

Я работаю над тем, чтобы 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.

Ответы [ 2 ]

0 голосов
/ 17 июля 2018

Добавьте в файл ~ / .m2 / settings.xml следующее:

<servers>
    <server>
        <id>ossrh</id>
        <username>{YOUR_JIRA_USERNAME}</username>
        <password>{YOUR_JIRA_PASSWORD}</password>
    </server>
</servers>

Также обновите ваш pom.xml:

<distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
</distributionManagement>
  1. Убедитесь, что идентификатор хранилища и идентификатор сервера совпадают. В этом примере идентификатор равен "ossrh".

  2. Также обратите внимание, что имя пользователя и пароль должныбыть таким же, как ваш логин jira .Вот и все mvn clean deploy теперь загрузит ваш jar в репозиторий sonatype.Счастливого развертывания !!

0 голосов
/ 14 мая 2018

Выполнение развертывания со стандартным плагином maven-deploy, как упоминалось в @khmarbaise, действительно работает.Я сообщил об этой проблеме в sonatype как часть проблем OSSRH-39766 и OSSRH-39777 .

Джоэль восстановил мои разрешения, и теперь плагин выпуска нексуса, кажется, работает,Обратите внимание, что это также может быть вызвано развертыванием maven, которое могло «заправить» что-то.

В общем, плагин выпуска nexus мог бы внести некоторые улучшения в ведение журнала, в частности:

  1. Какой профиль используется для выполнения шагов
  2. Какой шаг (точно) выполняется
  3. Если существует 401, укажите, какой идентификатор пользователя использовался для выполнения этого шага и из какогоокружение, которое было извлечено (командная строка, settings.xml и т. д.).

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

Спасибов SonaType за быстрые и полезные ответы!

...