Зависимое задание не запускается при создании моментального СНИМКА

#maven #jenkins #jenkins-pipeline #jenkins-plugins

#maven #дженкинс #дженкинс-конвейер #дженкинс-плагины

Вопрос:

У меня есть проект (B, C, D), который зависит от общего проекта (A). При сборке A B, C, D должны запускаться с использованием конвейеров. Все сборки выполнены успешно.

Project-A создает JAR, который не публикуется нигде, кроме как локально (~/.m2/…)

Обычно я использую Jenkinsfiles, но на данный момент я также настроил минимальные конвейерные задания с кодом непосредственно в Jenkins, пытаясь заставить запуск работать.

Ниже приведены минимальные задания конвейера, которые я создал для тестирования.

Для всех проектов я поставил галочку «Строить всякий раз, когда создается зависимость от моментального снимка»

В журналах сборки я вижу это для обоих проектов: [INFO] [jenkins-event-spy] Генерируется /var/lib/jenkins/workspace/ProjectName@tmp/withMavend4286f3f/maven-spy-20190411-121907-5107444902202263660415.log

Проект конвейера

 node{
  stage ('Build'){
      git branch: 'master', credentialsId: 'theID', url: 'git@github.com:ORG/PROJECT-A.git'
     withMaven(
        maven: 'Maven_3_6_0',
        jdk: 'Java1.8'

        ) {
          sh "mvn clean install"
    }
  }
}
  

Конвейер проекта B

 node{
    stage ('Build'){
      git branch: 'master', credentialsId: 'theID', url: 'git@github.com:ORG/PROJECT-B.git'
     withMaven(
        maven: 'Maven_3_6_0',
        jdk: 'Java1.8'
        ) {
            sh "mvn clean install"
        }
    }
}
  

Проект B pom.xml объявление зависимости

         <dependency>
            <groupId>com.myorg</groupId>
            <artifactId>projecta</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
  

Я не могу понять, что еще нужно для запуска проекта B при создании A.

Ответ №1:

Пожалуйста, ознакомьтесь с Часто задаваемыми вопросами о плагине Maven для конвейера> Мои нижестоящие конвейеры не запускаются, даже если я использую «Build всякий раз, когда создается зависимость от моментального снимка»

Чтобы настроить интеграцию Jenkins Pipeline Maven для запуска нижестоящих конвейеров на mvn install :

  • Либо измените глобальную конфигурацию:

    • Перейдите в раздел «Управление конфигурацией Дженкинса / глобальных инструментов»
    • Нажмите «Добавить издателя» и выберите «Издатель конвейерного графика»
    • В разделе «Триггеры нисходящего конвейера» измените «порог жизненного цикла Maven» с «развернуть» на «установить» Плагин Maven для конвейера> Глобальная конфигурация> Запуск нижестоящих конвейеров> Порог жизненного цикла Maven
  • Или в сценарии восходящего конвейера настройте withMaven(options: [pipelineGraphPublisher(lifecycleThreshold: 'install')]) {...}

Пожалуйста, также не забудьте в нижестоящих конвейерах (проект B) включить «Строить всякий раз, когда создается зависимость от моментального СНИМКА» ( properties([pipelineTriggers([snapshotDependencies()])]) )

Ответ №2:

Я думаю, проблема в том, что метод recordGeneratedArtifact вызывается с меткой времени («версия:1.0-20191009.204621-22 «) версия вместо «-SNAPSHOT», поэтому запросы listUpstream и listDownstream не могут возвращать результат…