#maven #jenkins #jenkins-pipeline #artifactory #jenkins-declarative-pipeline
#maven #дженкинс #дженкинс-трубопровод #артефакторный #дженкинс-декларативный-конвейер
Вопрос:
Я работаю над декларативным сценарием конвейера Дженкинса для создания и публикации артефакта в JFrog Artifactory.
У нас есть только один репозиторий проектов, и сервисы находятся в папке services. Все сервисы имеют свои собственные pom.xml .Нам нужно написать сценарий для сценария конвейера, чтобы создавать и публиковать артефакт в JFrog только при обнаружении изменений в структуре отдельных каталогов сервисов.
В соответствии с клиентом, у нас не может быть отдельного репозитория для каждой службы. Проблема здесь, с приведенным ниже скриптом (с использованием rtUpload) Я не могу опубликовать артефакты как артефакт maven (идентификатор группы, идентификатор артефакта и номер версии) в artifactory. Прошу вашей помощи в этом.
Структура проекта приведена ниже.
trinad(repository)
|
|-----/java/services/customer_quote/pom.xml
|
|-----/java/services/customer_rate/pom.xml
|
|-----/java/services/customer_renew/pom.xml
pipeline{
agent any
tools{
jdk 'JDK'
maven 'Maven'
}
stages{
stage('Build'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_quote/pom.xml' clean install
}
when {
anyOf{
changeset '**/services/customer_rate/**'
}
}
steps{
sh 'mvn -v'
sh 'mvn -f java/services/customer_rate/pom.xml' clean install
}
}
stage('publish'){
when {
anyOf{
changeset '**/services/customer_quote/**'
}
}
steps{
rtUpload{
serverId:'Artifactory',
spec:'''{
"files":[
{
"pattern":"/services/customer_quote/target/customer-quote-*.jar",
"target": "trinad"/${BUILD_NUMBER}/"
}]
}
}
}
//publish steps for other services goes here
}
}
}
Комментарии:
1. Вы пытаетесь использовать
maven deploy
вместоrtUpload
?
Ответ №1:
Я бы рекомендовал использовать задания на основе Maven, как указано в вики, и протестировать их. Поскольку вы пытаетесь выполнить сборку с использованием клиента «mvn» и развертывание в Artifactory с использованием rtUpload, я сомневаюсь, что это правильно или нет. Вы либо сначала пробуете использовать mvn deploy, либо настраиваете свой конвейер с помощью того, который упоминается в вики выше.
Образец файла Jenkins для декларативного скрипта можно найти на Github этого JFrog. Вероятно, использование rtMavenRun должно быть полезным при создании и развертывании файла.