У меня есть такая структура проекта:
- 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 .Теперь я хотел бы опубликовать артефакт моего дочернего проекта на нексусе после того, как Дженкинс завершил процесс сборки.На данный момент я сделал следующее:
- Скачал и установил плагин Nexus Platform в Jenkins
- Сконфигурировал серверы Nexus Repository Manager с учетными данными для моего сервера Nexus 3.x в JenkinsКонфигурация системы
- На вкладке Post-Build я добавил новый издатель Nexus Repository Manager Publisher с информацией о моем хранилище nexus, но теперь застрял в сеансе Maven Artifact, как показано ниже:
Что меня смущает здесь:
- Что я должен добавить в сеанс артефакта 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?
Может кто-нибудь помочь мне прояснить вышеприведенные вопросы?Большое спасибо!