Загрузка артефактов nexus

Как загрузить артефакты в нексус с автоматической генерацией версии с помощью оболочки jenkins? Я использую этот скрипт и хочу автоматически сгенерировать версию при загрузке артефакта.

 mvn deploy:deploy-file \
          -DgroupId= \
          -DartifactId= \
          -Dversion=  \
          -DgeneratePom= \
          -Dpackaging= \
          -DrepositoryId= \
          -Durl= \
          -Dfile= 

какой должна быть ваша целевая версия? может ли он быть основан на переменной $ BUILD_NUMBER?

Reddysekhar Gaduputi 26.10.2018 07:18

целевая версия - 0.0.1-SNAPSHOT.jar. Можно взять из pom.xml? Я новичок в этих вещах. <version> 0.0.1-SNAPSHOT </version>

Janith 26.10.2018 10:13

да, вы можете получить его из pom.xml, используя плагин справки maven. запустите его в jenkins, выполните оболочку перед развертыванием, и она вернет версию и использует ее при развертывании mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version

Reddysekhar Gaduputi 26.10.2018 11:22
mvn --quite org.apache.maven.plugins:maven-help-plugin:3.0.0:evaluate -Dexpression=project.version
Reddysekhar Gaduputi 26.10.2018 11:30
mvn help:evaluate -Dexpression=project.version | grep -e '^[^\[]' Данный скрипт работает нормально, и это тоже работает. Спасибо за поддержку
Janith 26.10.2018 12:53
2
5
1 026
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать переменную ${env.BUILD_NUMBER} в конвейере Jenkins, чтобы указать версию артефакта.

Для этого есть несколько вариантов:

  1. Если вы хотите опубликовать артефакты в Nexus во время mvn deploy, вы можете использовать параметр ${revision} в файле pom.xml. Для этого вам нужно поместить эту переменную в тег <version>. Например, <version>1.0-${revision}</version> а затем передайте его команде maven в конвейере Jenkins: mvn deploy -Drevision=${env.BUILD_NUMBER}. Подробнее см. Ответ это.
  2. Также вы можете использовать Плагин Nexus Jenkins для загрузки артефактов в нексус и указать версию артефакта с помощью переменной ${env.BUILD_NUMBER}. Подробнее см. это.

Другие вопросы по теме