La spécification de Maven local de l'emplacement du dépôt comme un paramètre CLI
Est-il possible de définir l'emplacement du référentiel Maven local comme argument sur le Maven en ligne de commande?
Le truc c'est que je ne l'utilise pas par défaut dans ~/.m2/repository
. Cependant j'ai vérifié un projet qui se construit avec ses propres paramètres avec -s settings.xml
. Que settings.xml ne spécifiez pas de mon dépôt local, de sorte que Maven utilise utilise ~/.m2/repository
encore une fois... je voudrais utiliser un non-local par défaut emplacement du dépôt sans avoir à ajouter un <localRepository>
élément dans le projet settings.xml
J'ai essayé
-DlocalRepository="..."
$mvn invoker:run -s settings.xml clean install -DskipTests -DlocalRepositoryPath=
-Dsettings.localRepository
mais aucune de ces options ne fonctionne.
Donc je pense que je dois décider si je vais modifier un tiers settings.xml ou déplacer mon repo local à ~
- Évidemment, ce n'est pas de votre faute, mais des projets Maven ne devrait pas être fournir une
settings.xml
. Voir maven.apache.org/guides/mini/guide-configuring-maven.html
Vous devez vous connecter pour publier un commentaire.
utiliser maven propriété
maven.repo.local
:mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
Pas de modifications à settings.xml sont nécessaires.
Pour git:
Cette utilise un autre repository maven dans chaque dépôt git
Une sorte de hacky façon de travailler est:
<localRepository>${m2.localRepository}</localRepository>
à votre settings.xml-Dm2.localRepository=<full path to home dir>/.m2/repository
avant le "$@" dans la commande qui est exécutée. Cela rendra votre local par défaut des pensions de rester là où il devrait être.mvn -Dm2.localRepository=... <phases/goals>
. Parce que votre ligne de commande du système de la propriété est ajoutée à la ligne de commande après celui de la mvn script, il aura la priorité. (Au moins, je suis sûr que cela fonctionne de cette façon à la fois sur windows et linux, mais les tests nous le diront.)