Est-il possible de définir l'emplacement du référentiel Maven local comme argument sur la ligne de commande Maven?
Le problème est que je n'utilise pas celui par défaut dans ~/.m2/repository
. Cependant, j'ai vérifié un projet en cours de construction avec ses propres paramètres avec -s settings.xml
. Ce settings.xml ne spécifie pas mon référentiel local, donc Maven utilise à ~/.m2/repository
nouveau utilise ... Je voudrais utiliser un emplacement de référentiel local autre que celui par défaut sans avoir à ajouter un <localRepository>
élément dans les paramètres du projet.xml
J'ai essayé
-DlocalRepository="..."
$mvn invoker:run -s settings.xml clean install -DskipTests -DlocalRepositoryPath=
-Dsettings.localRepository
mais aucune de ces options ne fonctionne.
Je pense donc que je dois décider si je vais modifier un tiers settings.xml ou déplacer mon dépôt local vers ~
settings.xml
. Voir maven.apache.org/guides/mini/guide-configuring-maven.htmlRéponses:
utiliser la propriété maven
maven.repo.local
:mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
Aucune modification
settings.xml
n'est nécessaire.la source
Pour git:
Cela utilise un référentiel maven séparé dans chaque référentiel git
la source
Une sorte de méthode hacky qui fonctionnerait 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 permettra à votre dépôt local par défaut de rester là où il devrait être.mvn -Dm2.localRepository=... <phases/goals>
. Étant donné que votre propriété système de ligne de commande est ajoutée à la ligne de commande après celle du script mvn, elle sera prioritaire. (Au moins, je suis à peu près sûr que cela fonctionne de cette façon sur Windows et Linux, mais les tests le diront.)la source