¿Es posible establecer la ubicación del repositorio local de Maven como argumento en la línea de comando de Maven?
La cosa es que no uso el predeterminado en ~/.m2/repository
. Sin embargo, revisé algunos proyectos que se están construyendo con su propia configuración -s settings.xml
. Ese settings.xml no especifica mi repositorio local, por lo que Maven usa usos ~/.m2/repository
nuevamente ... Me gustaría usar una ubicación de repositorio local no predeterminada sin tener que agregar un <localRepository>
elemento en settings.xml del proyecto
He intentado
-DlocalRepository="..."
$mvn invoker:run -s settings.xml clean install -DskipTests -DlocalRepositoryPath=
-Dsettings.localRepository
pero ninguna de estas opciones funciona.
Así que creo que tengo que decidir si voy a modificar la configuración de un tercero.xml o mover mi repositorio local a ~
settings.xml
. Ver maven.apache.org/guides/mini/guide-configuring-maven.htmlRespuestas:
usar propiedad maven
maven.repo.local
:mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
No hay modificaciones
settings.xml
necesarias.fuente
Para git:
Esto usa un repositorio maven separado en cada repositorio git
fuente
Una forma hacky que funcionaría es:
<localRepository>${m2.localRepository}</localRepository>
a tu settings.xml-Dm2.localRepository=<full path to home dir>/.m2/repository
antes de "$ @" en el comando que se ejecuta. Esto hará que su repositorio local predeterminado permanezca donde debería estar.mvn -Dm2.localRepository=... <phases/goals>
. Debido a que la propiedad del sistema de línea de comando se agrega a la línea de comando después de la del script mvn, tendrá prioridad. (Al menos estoy bastante seguro de que funciona de esa manera tanto en Windows como en Linux, pero las pruebas lo dirán).fuente