Maven - трубопровод Дженкинса, не использующий пом - PullRequest
0 голосов
/ 17 февраля 2020

У меня проблема с запуском maven через Jenkins. При локальном запуске происходит обращение к правильному URL, но через Jenkins (в середине конвейера) это не так. Также говорится, что для этого используется другой плагин. Как заставить Дженкинса связаться с MY_URL, как это делает моя командная строка?

(я немного очистил вывод)

Выполнение следующего из командной строки дает мне:

mvn clean deploy -DaltDeploymentRepository=nexus::default::https://MY_URL/ -DskipTests -P nexus -X -s ./settings.xml

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project MY_PROJECT: Failed to deploy artifacts: Could not transfer artifact from/to nexus (https://MY_URL): Failed to transfer file 20200217.092316-15.jar with status code 401 -> [Help 1]

Это то, что я хочу (я жду учетных данных - но он вводит правильный URL)

Запуск через Jenkins дает мне: [ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.5.1:deploy (default-deploy) on project : Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]

I сделал "diff" для файлов pom, используемых jenkins и локально, и они идентичны; Аналогично с настройками. xml Я подозреваю, что это проблема с плагином, но я не знаю, где go с ним.

Вещи, которые я пробовал:

  • Предварительно очистить mvn
  • переустановить mvn
  • , повторив настройки. xml и pom. xml в вывод jenkins
  • Указание altDeploymentRepository в настройках. xml и / или командной строки
  • Указание altDeploymentRepository с помощью -Dproperties = flag
  • Комбинации altDeploymentRepository, altDeploymentDirectory,
    altSnapshotDeploymentRepository
  • Бесконечные исследования
  • Обнадеживающие повторы
  • Удар головой по столу

1 Ответ

0 голосов
/ 17 февраля 2020

Ваш Jenkins выполняет цель org.sonatype.plugins:nexus-staging-maven-plugin:1.5.1:deploy.

Она указывается в POM или указывается в командной строке. Поэтому прежде всего проверьте, настроен ли nexus-staging-maven-plugin в вашем POM или в одном из родительских POM. Если это так, проверьте, выполняется ли он условно или является частью профиля.

Во-вторых, посмотрите на вызов командной строки в Jenkins и убедитесь, что он точно такой же, как и тот, который вы запускали локально.

Третья возможность состоит в том, что вы запускаете плагин Jenkins от Sonatype, который неявно пытается развернуть артефакты. Так что следите за спецификациями Sonatype c Плагины Jenkins.

Одна из трех стратегий должна привести к источнику проблемы.

...