Можно ли указать расположение локального репозитория 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 или перемещать локальное репо в ~
settings.xml
. См. Maven.apache.org/guides/mini/guide-configuring-maven.htmlОтветы:
использовать свойство maven
maven.repo.local
:mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
Никаких изменений
settings.xml
не требуется.источник
Для git:
Это использует отдельный репозиторий maven в каждом репозитории git
источник
Один из хакерских способов, который может сработать:
<localRepository>${m2.localRepository}</localRepository>
в свой settings.xml-Dm2.localRepository=<full path to home dir>/.m2/repository
перед "$ @" в выполняемой команде. Это заставит ваше локальное репо по умолчанию оставаться там, где оно должно быть.mvn -Dm2.localRepository=... <phases/goals>
. Поскольку системное свойство командной строки добавляется в командную строку после свойства в сценарии mvn, оно будет иметь приоритет. (По крайней мере, я почти уверен, что это работает как в Windows, так и в Linux, но тестирование покажет.)источник