Указание местоположения локального репозитория Maven в качестве параметра CLI - PullRequest
107 голосов
/ 26 июля 2011

Можно ли указать расположение локального репозитория Maven в качестве аргумента в командной строке Maven?

Дело в том, что я не использую значение по умолчанию в ~/.m2/repository.Однако я проверил некоторый проект, который строится с его собственными настройками с -s settings.xml.Этот файл settings.xml не указывает мой локальный репозиторий, поэтому Maven снова использует ~/.m2/repository ... Я хотел бы использовать местоположение локального репозитория не по умолчанию, не добавляя элемент <localRepository> в файл settings.xml проекта

Я пробовал

  • -DlocalRepository="..."
  • $mvn invoker:run -s settings.xml clean install -DskipTests -DlocalRepositoryPath=
  • -Dsettings.localRepository

, нони один из этих вариантов не работает.

Поэтому я думаю, что должен решить, буду ли я изменять сторонний файл settings.xml или перенесу локальное репо на ~

Ответы [ 3 ]

214 голосов
/ 16 августа 2011

использовать свойство maven maven.repo.local:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install

Никаких изменений в файле settings.xml не требуется.

6 голосов
/ 07 июля 2017

Для git:

alias mvn='mvn -Dmaven.repo.local=`git rev-parse --show-toplevel`/.m2/repository'

Используется отдельный репозиторий maven в каждом репозитории git

2 голосов
/ 26 июля 2011

Один из возможных способов взлома:

  1. Добавьте <localRepository>${m2.localRepository}</localRepository> в ваши settings.xml
  2. В вашем mvn.sh или mvn.bat добавьте -Dm2.localRepository=<full path to home dir>/.m2/repository до"$ @" в команде, которая выполняется.Это заставит локальное репо по умолчанию оставаться там, где и должно быть.
  3. Теперь вы можете использовать mvn -Dm2.localRepository=... <phases/goals>.Поскольку системное свойство вашей командной строки добавляется в командную строку после строки в сценарии mvn, оно будет иметь приоритет.(По крайней мере, я почти уверен, что это работает как на Windows, так и на Linux, но тестирование покажет.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...