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



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



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



Я пробовал





  • -DlocalRepository="..."

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

  • -Dsettings.localRepository


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



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

529   3  

3 ответов:

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

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

никаких изменений в настройки.XML-это необходимо.

для git:

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

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

один вид хакерского способа, который будет работать:

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

Comments

    Ничего не найдено.