tutorial pom plugin español compiler maven

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:

  1. Agregue <localRepository>${m2.localRepository}</localRepository> a su settings.xml
  2. 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.
  3. 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.