Как загрузить артефакт после сборки Jenkins на Nexus - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть такая структура проекта:

- parent-project : pom.xml
  + child-project: pom.xml
  + child-project-2: pom.xml

Я бы хотел загрузить артефакт child-project в Nexus, поэтому в файле pom.xml моего child-project я определил:

    <distributionManagement>
        <repository>
            <id>nexus</id>
            <url>http://my-repo:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus</id>
            <url>http://my-repo:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

И когда я запускаю дочерний проект с mvn clean deploy из eclipse, jar-файл дочернего проекта загружается в my-repo хранилище nexus, как и ожидалось.

В Jenkins у меня есть задание, настроенное с помощью parent-project pom.xml .Теперь я хотел бы опубликовать артефакт моего дочернего проекта на нексусе после того, как Дженкинс завершил процесс сборки.На данный момент я сделал следующее:

  1. Скачал и установил плагин Nexus Platform в Jenkins
  2. Сконфигурировал серверы Nexus Repository Manager с учетными данными для моего сервера Nexus 3.x в JenkinsКонфигурация системы
  3. На вкладке Post-Build я добавил новый издатель Nexus Repository Manager Publisher с информацией о моем хранилище nexus, но теперь застрял в сеансе Maven Artifact, как показано ниже: enter image description here

Что меня смущает здесь:

  1. Что я должен добавить в сеанс артефакта Maven?Я пытался child-project/target/child-project-0.0.1-SNAPSHOT.jar, но это не сработало.Дженкинс выдал исключение

java.io.IOException: child-project / target / child-project-0.0.1-SNAPSHOT.jar не существует

Зачем мне здесь указывать версию артефакта?Означает ли это, что каждый раз, когда я меняю версию своего дочернего проекта, мне приходится приходить сюда и изменять версию? Если я уже определил в pom.xml моего дочернего проекта сеанс с InfoЧто касается репозитория Nexus, зачем мне определять его здесь снова? Возможно ли, что я сконфигурирую сборку задания напрямую с mvn clean deploy, как я делал в eclipse, чтобы перенести артефакт на нексус?Если да, то мне больше не нужен Nexus Repository Manager Publisher?И как я могу настроить аутентификацию для сервера nexus, например, как в файле setting.xml в папке /.m2?

Может кто-нибудь помочь мне прояснить вышеприведенные вопросы?Большое спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

вам не нужен плагин, который вы можете запустить в своей работе maven clean install deploy из оболочки. Я использую конвейерный синтаксис, так что это реальный код, но вы можете использовать jenkins ui для создания шага оболочки

...