Почему команда mvn не найдена в этом декларативном сценарии конвейера jenkins? - PullRequest
0 голосов
/ 01 февраля 2019

Я получил этот пример от https://jenkins.io/doc/book/pipeline/syntax/#tools

Конвейерный сценарий:

pipeline {
    agent any
    tools {
        maven 'apache-maven-3.3.9' 
    }
    stages {
        stage('Example') {
            steps {
                sh 'mvn --version'
            }
        }
    }
}

apache-maven-3.3.9 определен в моей глобальной конфигурации инструмента.

Выходные данные сценария, однако, выглядят так:

Started by user *************
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on SRV-CI-MADE-UNIX in /home/jenkins/workspace/*************
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Tool Install)
[Pipeline] tool
[Pipeline] envVarsForTool
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Example)
[Pipeline] tool
[Pipeline] envVarsForTool
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ mvn --version
/home/jenkins/workspace/*************@tmp/durable-d4209a18/script.sh: line 1: mvn: command not found
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
[BFA] Scanning build for known causes...
[BFA] No failure causes found
[BFA] Done. 0s
ERROR: script returned exit code 127
Finished: FAILURE

Почему команда mvn не найдена?

Я знаю, что, очевидно, существуют другие способы сделать это, но это пример из документации Jenkins.сам ...

1 Ответ

0 голосов
/ 01 февраля 2019

Это правильный пример (я тоже проверял), но он работает, если у вас есть только master узел.

Я думаю, что вы только что настроили свой инструмент Maven в Global Tool Configuration для узла master, но я вижу, что вы выполнили свою работу на узле SRV-CI-MADE-UNIX, и для этого узла вам также необходимо предоставитьправильная конфигурация Maven.

Итак, чтобы решить проблему, я полагаю, что вам нужно выполнить следующие шаги:

  1. предоставить правильный агент (вместо agent any) в конфигурации конвейера (например, master или SRV-CI-MADE-UNIX), для которого настроен инструмент Maven;
  2. установите Maven на указанном узле в том же каталоге, который вы настроили в Global Tool Configuration, или добавьте конкретное местоположение инструмента Maven для этого узла вManage Jenkins -> Manage Nodes -> <YOUR_NODE> -> Configure -> Node Properties -> Tool Locations
...