#java #maven
#java #maven
Вопрос:
Для задания на сборку на сервере сборки я хочу установить .m2
местоположение, отличное от user.home/.m2
.
Я думал, что смогу обмануть maven, установив export HOME=$WORKSPACE
для сборки, но артефакты продолжали загружаться и развертываться в домашнем каталоге пользователя сборки.
Поэтому я думаю, что maven использует user.home
системное свойство, которое, похоже, не принимает $HOME
во внимание.
Есть ли решение для этого? У нас есть локальный кэш maven, и я действительно хочу загрузить все артефакты для этого задания сборки и предотвратить любое развертывание в пользовательской сборке $HOME/.m2
, чтобы отделить отдельные задания сборки друг от друга. По крайней мере, я хочу этого для некоторых заданий.
Есть идеи? Заранее спасибо!
Ответ №1:
Вы можете переопределить расположение settings.xml файл из командной строки…
mvn <target> --settings /path/to/settings.xml
Отсюда вы можете настроить все, что вам понадобится.
[обновить] Вы даже можете переопределить «глобальные» настройки, которые обычно объединяются с пользовательскими settings.xml сформируйте их каталог .m2 с помощью --global-settings /path/to/global/settings.xml
Комментарии:
1. Могу ли я как-то установить это через переменную среды? Если возможно, я хотел бы настроить сценарии сборки без фактического изменения файлов сборки. Но это было бы просто приятно иметь. 🙂
2. @Martin C.: Я не знаю, как вы запускаете скрипты сборки, поэтому я не могу сказать.
3. Большая часть этого выполняется с помощью сценариев оболочки на сервере Jenkins, поскольку для тех, где я хотел бы изменить местоположение .m2, необходимы дополнительные этапы предварительной обработки. Некоторые из них являются заданиями buildr, некоторые — заданиями Gradle. Buildr настраивается в этом отношении, но Gradle, как кажется, использует maven по умолчанию.
4. Я не знаю об этом напрямую; возможно, вы могли бы задать новый вопрос относительно Gradle и сослаться на этот вопрос.
Ответ №2:
Если вы просто хотите указать свой собственный локальный репозиторий, вы можете использовать опцию maven.repo.local
:
-Dmaven.repo.local=/path/to/your/repository
Ресурсы :
- maven.apache.org (на веб-сайте maven-1.x, но все еще работает с maven 3.0 — не могу найти надежный источник для этой версии, хотя)