Есть ли способ изменить рабочий каталог сборки Jenkins Maven?

Есть ли способ изменить рабочий каталог сборки Jenkins Maven?

Пример использования

Существует сборка Maven, которая будет работать только в том случае, если текущий рабочий каталог представляет собой каталог с pom.xml, поэтому я хочу, чтобы сборка Maven выполнялась в этом каталоге.

Каталог с pom.xml находится в подкаталоге проекта git.

Ответы

Ответ 1

Создайте цель для проверки родителя.

  • Оформить родительский родительский указатель вашей цели сборки
  • Set Build → Goal = clean
  • Запустите сборку и определите каталог рабочей области назначения (вторая строка вывода консоли в моем примере /var/lib/jenkins/workspace/my _project)

Создайте цель для создания своего пути

  • НЕ проверять "Удалить рабочее пространство до начала сборки"
  • В сборке → Дополнительно - установите флажок "Изменить папку рабочего пространства" и вставьте каталог /yourtargetdirectory

Это сработало для меня.

Ответ 2

Не уверен, когда это было добавлено, но для Jenkins передо мной (Jenkins ver. 1.627 в нижней части страницы) теперь есть возможность определить, где находится корень pom.xml(в сообщении справки:

Если ваше рабочее пространство имеет pom.xml верхнего уровня в другом месте, кроме корневой каталог 1-го модуля, укажите путь (относительно module root) здесь, например parent/pom.xml. Если оставить пустым, по умолчанию используется значение pom.xml

). Я столкнулся с одной и той же проблемой, но потом понял, что ответ смотрел мне в лицо (обратите внимание, что мне не нужно было продвигаться вперед, как предположил Hua2308, вероятно, потому, что они изменили интерфейс)

Ответ 3

Для справки, вот что работает для меня. На шаге "Вызовы верхнего уровня Maven" вы можете создать кнопку "Дополнительно...". Если вы нажмете эту кнопку, вы можете указать относительный путь к вашему файлу POM.xml. Это должно гарантировать, что вы создаете только желаемый проект в подкаталоге.

Ответ 4

Вы можете использовать параметр Maven -f

-f,--file <arg>    Force the use of an alternate POM file (or directory with pom.xml).

Например, если ваш проект имеет структуру:

README.md
sources
|----pom.xml
|----services
|    |----pom.xml
|    +----src
|----webservices
|    |----pom.xml
|    +----src
+----....
useful
docs

то вы можете использовать Goals в Invoke top-level Maven targets:

-f sources/pom.xml clean install

Ответ 5

Перейдите в конфигурацию вашего проекта maven, затем:

Сборкa > нажмите кнопку "Дополнительно" > установите флажок "Использовать настраиваемое рабочее пространство" > установите каталог

(Я использую версию Jenkins 1.508)

Ответ 6

Дженкинс, с которым мы работаем, находится на немецком языке, поэтому я пытаюсь угадать, как переводятся варианты.

Перейдите к настройке вашего проекта и перейдите к расширенной конфигурации проекта (это вторая часть) и расширьте его. Последний пункт должен быть чем-то вроде Change folder of workspace. Я думаю, это может быть то, что вы ищете.

В противном случае вы всегда можете перейти к параметрам Build и изменить путь к вашему pom.xml

Ответ 7

Решение:

cd subfolder; mvn -f ../pom.xml task

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