Как добавить переменную пути в оболочку задания - PullRequest
11 голосов
/ 08 сентября 2011

Я настраиваю Jenkins для замены нашей текущей сборки TeamCity CI.

Я создал проект программного обеспечения свободного стиля, чтобы я мог выполнить сценарий оболочки.Сценарий оболочки запускает команду mvn.

Но сборка завершается неудачно, из-за чего не удается найти команду mvn.

Я понял, что это потому, что Jenkins запускает сборку в другомоболочка, у которой нет Maven на своем пути.

Мой вопрос;Как мне добавить путь, чтобы «mvn» был найден в моем сценарии Shell?Я оглянулся, но не могу определить, где может быть правильное место.

Спасибо за ваше время.

Ответы [ 5 ]

5 голосов
/ 14 сентября 2011

Я решил эту проблему, экспортировав и установив путь в конфигурации задания Jenkins, где вы можете вводить команды оболочки. Поэтому я устанавливаю переменную окружения перед тем, как выполнить свой сценарий Shell, который работает.

3 голосов
/ 08 сентября 2011

Некоторые возможные решения:

  • Вы можете вызвать maven с абсолютным путем
  • Вы настраиваете глобальную переменную среды в системных настройках jenkins с абсолютным путем к вашему экземпляру maven,и использовать это в своем вызове сценария (если вы используете встроенный сценарий оболочки, я не знаю, подставляются ли они в вызываемый сценарий, вы должны проверить)
  • Вы используете проект maven и настраиваете свой mavenНапример, в системных настройках jenkins

пс .: Обычно /bin/sh выбирается из Jenkins, если вы хотите переключиться, например, на.bash, вы можете настроить это в системных настройках jenkins на тот случай, если вы захотите настроить глобальные переменные среды.

1 голос
/ 27 сентября 2013

Вы можете использовать envInject plugin . Это очень мощный.

Я использую его для установки rbenv. И это может добавить переменные окружения в вашу текущую работу.

0 голосов
/ 25 сентября 2013

Дженкинс использует sh по умолчанию, а не bash.Я впервые определяю задание jenkins maven, и я также следовал регулярным инструкциям soem maven (для запуска из командной строки ...) и пытался обновить ~ / .bashrc с помощью M2_HOME, M2, PATH, но этого не произошлоработать, потому что Дженкинс использовал sh, а не bash.Затем я узнал, что в Дженкинс встроен более простой и лучший способ.

После установки maven я должен был настроить свою установку maven в jenkins.

Чтобы настроить установку maven в Jenkins:

  1. войдите в веб-консоль jenkins
  2. щелкните Управление Jenkins -> Настройка системы
  3. В разделе Maven нажмите кнопку «Установки Maven ...»
  4. a. Дайте ему какое-нибудь имя b. и в MVN_HOME задайте путь к месту установки maven, например "/usr/local/apache-maven/apache-maven-3.0.5 "
  5. Нажмите кнопку Сохранить

Определите работу с целью maven

  1. отредактируйте вашу работу
  2. Нажмите «Добавить шаг сборки»
  3. в Maven Version, введите имя, которое вы дали своей установке maven (шаг № 4 выше)
  4. , установите цель, например чистую установку
0 голосов
/ 11 сентября 2011

Еще один вариант предложения Дагса состоит в том, что если вы используете только одну версию maven, на каждом подчиненном сервере вы можете сделать либо;* добавьте PATH = $ {PATH}: * символическая ссылка mvn в / usr / bin с помощью;sudo ln -s / usr / bin

В данный момент я не нахожусь в коробке Дженкинса, но могу найти более подробные примеры, если хотите.

...