Симптомы
Если я создаю задание Maven в Jenkins (New Item = > Maven project) со всеми значениями по умолчанию и запустил его, я получаю эту ошибку:
Started by user anonymous
Building on master in workspace /var/lib/jenkins/jobs/job_name/workspace
ERROR: A Maven installation needs to be available for this project to be built.Either your server has no Maven installations defined, or the requested Maven version does not exist.
Finished: FAILURE
Maven отлично работает из командной строки только с mvn
.
Неприемлемое обходное решение
Существует общая система Jenkins для установки Maven: Управление Jenkins = > Настройка System = > Установка Maven/Maven. И если я добавлю установку Maven с помощью этого веб-интерфейса (предоставив предварительно установленный путь в MAVEN_HOME
как /usr/share/maven
), задание выполняется УСПЕШНО.
Вопрос: почему это глобальная конфигурация Jenkins, а не Slave-specific?
Глобальная конфигурация Jenkins не имеет смысла: Maven запускается на Slave, а не на Jenkins.
Зоопарк Slaves, где выполняются задания Jenkins, может содержать ведомые устройства с различными платформами, операционными системами, средами, где разные версии Maven установлены в разных местах.
Вопрос: Как мне настроить установку Maven для ведомого node?
Настройка переменных окружения, таких как MAVEN_HOME
и M2_HOME
, на тот же путь для всей системы на Slave node не работает.
Версия
Оба Jenkins Master и Slave - это хосты Linux. Версия Jenkins: 1.598