88 votes

Comment spécifier un autre emplacement pour le dossier .m2 ou settings.xml de façon permanente ?

Je suis en train d'utiliser Maven 3.0, et mes .m2 L'emplacement du dossier est C:\Users\me\.m2 .

Cependant, je n'ai pas d'accès en écriture à ce dossier, mais je veux changer l'emplacement du référentiel par rapport à celui défini dans le fichier d'aide à l'écriture. settings.xml .

En raison de l'accès restreint, Je ne suis pas en mesure de modifier le settings.xml pour changer l'emplacement du référentiel.

Comment puis-je remplacer les valeurs de mon settings.xml -ou changez l'emplacement par défaut du .m2 sans modifier mon C:\Users\me\.m2\conf\settings.xml fichier ?

107voto

Petr Mensik Points 8588

Vous devez ajouter cette ligne dans votre settings.xml (ou décommentez si c'est déjà là).

<localRepository>C:\Users\me\.m2\repo</localRepository>

Il est également possible d'exécuter vos commandes avec mvn clean install -gs C:\Users\me\.m2\settings.xml - ce paramètre forcera maven à utiliser différents settings.xml alors celui par défaut (qui est dans $HOME/.m2/settings.xml )

63voto

TWiStErRob Points 1233

C'est drôle comme les autres réponses ignorent le fait que vous ne pouvez pas écrire dans ce fichier...

Il y a quelques solutions de contournement qui me viennent à l'esprit et qui pourraient permettre d'utiliser un code arbitraire. C:\redirected\settings.xml y utiliser le mvn comme d'habitude heureux pour toujours.

mvn alias

Dans un shell Unix (ou sur Cygwin) vous pouvez créer

alias mvn='mvn --global-settings "C:\redirected\settings.xml"'

donc quand vous appelez mvn blah blah de n'importe où, la configuration est "automatiquement" récupérée.
Véase Comment créer un alias dans cmd ? si vous voulez cela, mais que vous n'avez pas de shell Unix.

mvn emballage

Configurez votre environnement de sorte que mvn est résolu en un wrapper script lorsqu'il est tapé dans la ligne de commande :

  • Retirez votre MVN_HOME/bin o M2_HOME/bin de votre PATH donc mvn n'est plus résolu.
  • Ajouter un dossier à PATH (ou utiliser un modèle existant)
  • Dans ce dossier, créez un mvn.bat avec son contenu :

    call C:\your\path\to\maven\bin\mvn.bat --global-settings "C:\redirected\settings.xml" %*

Note : si vous voulez que certains projets se comportent différemment, vous pouvez simplement créer mvn.bat dans le même dossier que pom.xml donc quand vous exécutez un simple mvn il se résout à celui qui est local.

Utilice where mvn à tout moment pour vérifier comment il est résolu, le premier sera exécuté quand vous tapez mvn .

mvn.bat pirater

Si vous avez un accès en écriture à C:\your\path\to\maven\bin\mvn.bat modifiez le fichier et ajoutez set MAVEN_CMD_LINE_ARG à la :runm2 partie :

@REM Start MAVEN2
:runm2
set MAVEN_CMD_LINE_ARGS=--global-settings "C:\redirected\settings.xml" %MAVEN_CMD_LINE_ARGS%
set CLASSWORLDS_LAUNCHER=...

mvn.sh pirater

Pour être complet, vous pouvez modifier le C:\your\path\to\maven\bin\mvn de l'interpréteur de commandes script aussi en changeant l'élément exec "$JAVACMD" de la commande

${CLASSWORLDS_LAUNCHER} "$@"

partie à

${CLASSWORLDS_LAUNCHER} --global-settings "C:\redirected\settings.xml" "$@"

Suggestion/Rantation

En tant qu'informaticien, je trouve amusant que vous n'ayez pas accès à votre propre dossier personnel. Pour moi, cela constitue une incompétence de la part de l'entreprise pour laquelle vous travaillez : cela équivaut à engager quelqu'un pour faire du développement de logiciels, mais sans lui donner la possibilité d'utiliser autre chose que notepad.exe ou Microsoft Word pour modifier les fichiers sources. Je vous suggère de contacter votre service d'assistance ou votre administrateur et de demander un accès en écriture au moins à ce fichier particulier afin de pouvoir modifier le chemin du dépôt local.

Avis de non-responsabilité : Aucun d'entre eux n'est testé pour ce cas d'utilisation particulier, mais je les ai tous utilisés avec succès auparavant pour divers autres logiciels.

43voto

Dragas Points 105

Personne ne l'a suggéré, mais vous pouvez utiliser -Dmaven.repo.local pour changer l'endroit où se trouve le dépôt. En outre, selon settings.xml vous pouvez définir -Dmaven.home où il cherche le settings.xml fichier.

Voir : Documentation du fichier Settings.xml

22voto

Voici la configuration dans le logiciel Maven par défaut en MAVEN_HOME \conf\settings.xml .

<settings>
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

Ajoutez la ligne ci-dessous sous cette configuration, cela répondra à l'exigence.

<localRepository>custom_path</localRepository>

Ex : <localRepository>D:/MYNAME/settings/.m2/repository</localRepository>

8voto

Anshuman Points 81

Vous pouvez changer l'emplacement par défaut du répertoire .m2 dans m2.conf fichier. Il réside dans votre répertoire d'installation maven.

ajouter modifier cette ligne dans

m2.conf

set maven.home C:\Users\me\.m2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X