plugin - pom maven
Especificación de la ubicación del repositorio local de Maven como un parámetro CLI (3)
¿Es posible establecer la ubicación del repositorio local de Maven como argumento en la línea de comandos de Maven?
El caso es que no uso el predeterminado en ~/.m2/repository
. Sin embargo, revisé algún proyecto que se está construyendo con su propia configuración con -s settings.xml
. Ese settings.xml no especifica mi repositorio local, por lo que Maven usa ~/.m2/repository
nuevo ... Me gustaría utilizar una ubicación de repositorio local no predeterminada sin tener que agregar un elemento <localRepository>
en el proyecto settings.xml
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 modificaré un settings.xml de terceros o moveré mi repositorio local a ~
Para git:
alias mvn=''mvn -Dmaven.repo.local=`git rev-parse --show-toplevel`/.m2/repository''
Esto usa un repositorio maven separado en cada repositorio git
Un tipo de hacky que funcionaría es:
- Agregue
<localRepository>${m2.localRepository}</localRepository>
a su settings.xml - En su mvn.sh o mvn.bat, agregue
-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. - Ahora puede usar
mvn -Dm2.localRepository=... <phases/goals>
. Como su propiedad de sistema de línea de comandos se agrega a la línea de comando después de la que está en el 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).
utilizar maven property maven.repo.local
:
mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
No son necesarias modificaciones a settings.xml.