É possível definir o local do repositório local do Maven como argumento na linha de comando do Maven?
O problema é que eu não uso o padrão ~/.m2/repository
. No entanto, verifiquei algum projeto que está sendo construído com suas próprias configurações -s settings.xml
. Como o settings.xml não especifica meu repositório local, o Maven usa os usos ~/.m2/repository
novamente ... Gostaria de usar um local não padrão do repositório local sem precisar adicionar um <localRepository>
elemento no settings.xml do projeto
eu tentei
-DlocalRepository="..."
$mvn invoker:run -s settings.xml clean install -DskipTests -DlocalRepositoryPath=
-Dsettings.localRepository
mas nenhuma dessas opções funciona.
Acho que tenho que decidir se modificarei o settings.xml de terceiros ou moverei meu repositório local para ~
settings.xml
. Veja maven.apache.org/guides/mini/guide-configuring-maven.htmlRespostas:
use propriedade maven
maven.repo.local
:mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
Nenhuma modificação
settings.xml
é necessária.fonte
Para git:
Isso usa um repositório maven separado em cada repositório git
fonte
Um tipo de maneira hacky que funcionaria é:
<localRepository>${m2.localRepository}</localRepository>
às suas configurações.xml-Dm2.localRepository=<full path to home dir>/.m2/repository
antes do "$ @" no comando que é executado. Isso fará com que seu repositório local padrão permaneça onde deveria estar.mvn -Dm2.localRepository=... <phases/goals>
. Como a propriedade do sistema de linha de comando é adicionada à linha de comando após a do script mvn, ela terá precedência. (Pelo menos, tenho certeza de que funciona dessa maneira no Windows e no Linux, mas o teste dirá.)fonte