Как объединить плагин Maven Release с плагином Nexus Staging? - PullRequest
2 голосов
/ 27 марта 2020

Я выпускаю проект с открытым исходным кодом для Maven Central, и я хотел объединить Maven Release Plugin с Nexus Staging Plugin , но не знаю как.

Плагин Maven Release выполняет все, что мне нужно:

  • проверки git,
  • git тег репозитория,
  • git версия для следующей итерации,
  • проверка,
  • сборка,
  • развертывание , (<- это то, что я хотел бы изменить) </li>
  • и git ветка восстановления.

Вся эта автоматизация означает, что я могу выполнить релиз с помощью одной командной строки. Удивительно.

Единственное предостережение здесь заключается в том, что задача развертывания выше просто доставляет JAR-файлов в центральный репозиторий Maven, но не публикует их sh. Мне все еще нужно войти на веб-сайт Maven Central, найти релиз, нажать «Закрыть» ... подождать несколько минут ... еще не готово ... подождать пару минут ... проверить еще раз ... о, все готово ... наконец, нажмите "Release". Мне не нравится это руководство, склонное к ошибкам задание.

Плагин Nexus Staging, с другой стороны, автоматически выполняет «Закрыть» + «Выпуск». Тем не менее, он не делает ничего другого, как список шагов, описанный выше.

Можно ли как-то заменить вышеприведенный раздел "deploy" на "Nexus Staging Plugin"?

1 Ответ

1 голос
/ 27 марта 2020

Как глупо с моей стороны. Невероятно, насколько вы приблизились к ответу, когда вы go проходили процесс формулирования вопроса.

Решение было очень простым. Просто добавив Nexus Staging Plugin в pom. xml автоматически заменяет шаг по умолчанию "deploy".

Это мой pom. xml раздел для Nexus Staging Plugin:

  <!-- Nexus Staging -->

  <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>

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

$ mvn -B release:prepare && mvn release:perform

Полностью автоматизирован от начала до конца: Git release + публикация Maven Central в одной go .

Ура!

...