2015-05-22 3 views
1

Я тестирую трубопроводы непрерывной доставки с помощью GoCD. Сервер и агент живут в отдельных контейнерах Docker, поставляемых с Oracle Java 8.
Я установил тестовую задачу, которая проверяет мой репозиторий Git и использует maven для компиляции. В качестве тестовой команды я использую простой mvn clean build.Агент GoCD не распознает переменную окружения JAVA_HOME

Когда я начинаю задачу, я получаю следующий результат неудачной сборки:

07:50:59.395 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.3:compile (default-compile) on project xxxxx: Compilation failure 07:50:59.395 [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

Когда я запускаю команду mvn локально внутри контейнера все работает отлично. После долгого времени поиска решения я нашел подсказки, связанные с проблемами с переменными среды Java и Maven. На обеих системах, выход для этих переменных кажется правильным:

[email protected]:/tmp$ echo $M2_HOME $JAVA_HOME /usr/share/maven /usr/lib/jvm/java-8-oracle

Окончательное решение, которое я закончил с устанавливает переменную $JAVA_HOME в качестве переменной окружения на сервере GoCD в качестве установки трубопровода. Тогда все работает нормально, но я действительно не понимаю, почему системные переменные не подхвачены агентом.

ответ

2

Агент имеет профиль, который используется для выполнения заданий и задач. Расположение по умолчанию:/и т.д./по умолчанию/гоу-агент Добавить

export JAVA_HOME="/usr/lib/jvm/java-8-oracle/" 

к этому файлу.

1

Вы также можете указать переменные среды в трубопроводах и этапах. Если вы используете общий шаблон для этапов, вы можете указать JAVA_HOME.

+0

Хотя он не должен работать (Go Version: 16.6.0) –

Смежные вопросы