Commande Maven pour déterminer quel fichier settings.xml Maven utilise

Comment utiliser la ligne de commande de maven pour déterminer quel fichier settings.xml est récupéré?

Démarrez maven avec l’option -X (debug) et examinez le début de la sortie. Il devrait y avoir quelque chose comme ça:

... [INFO] Error stacktraces are turned on. [DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml [DEBUG] Reading user settings from c:\....\.m2\settings.xml [DEBUG] Using local repository at C:\....\repository ... 

(Les noms de répertoires originaux sont supprimés par moi)

Votre commentaire sur la réponse (correcte) de cletus implique que plusieurs fichiers de parameters Maven sont impliqués.

Maven utilise toujours un ou deux fichiers de parameters. Les parameters globaux définis dans ($ {M2_HOME} /conf/settings.xml) sont toujours requirejs. Le fichier de parameters utilisateur (défini dans $ {user.home} /. M2 / settings.xml) est facultatif. Tous les parameters définis dans les parameters utilisateur ont priorité sur les parameters globaux correspondants.

Vous pouvez remplacer l’emplacement des parameters globaux et utilisateur à partir de la ligne de commande. L’exemple suivant définit les parameters globaux sur c: \ global \ settings.xml et les parameters utilisateur sur c: \ user \ settings.xml :

 mvn install --settings c:\user\settings.xml --global-settings c:\global\settings.xml 

Actuellement, il n’y a pas de propriété ou de moyen permettant d’établir quels fichiers de parameters utilisateur et globaux ont été utilisés avec Maven. Pour accéder à ces valeurs, vous devez modifier MavenCli et / ou DefaultMavenSettingsBuilder pour injecter les emplacements de fichiers dans l’object Paramètres résolu.

Vous pouvez utiliser le plugin maven help pour vous indiquer le contenu de vos fichiers de parameters utilisateur et globaux.

 mvn help:effective-settings 

demandera à maven de recruter les parameters globaux et utilisateur combinés .

Ceci est le fichier de configuration pour Maven. Il peut être spécifié à deux niveaux:

  1. Niveau de l’utilisateur. Ce fichier settings.xml fournit la configuration pour un utilisateur unique et est normalement fourni dans $ {user.home} /. M2 / settings.xml.

      NOTE: This location can be overridden with the CLI option: -s /path/to/user/settings.xml 
  2. Niveau global Ce fichier settings.xml fournit une configuration pour tous les utilisateurs Maven sur une machine (en supposant qu’ils utilisent tous la même installation Maven). Il est normalement fourni dans $ {maven.home} /conf/settings.xml.

      NOTE: This location can be overridden with the CLI option: -gs /path/to/global/settings.xml 

La variable d’environnement M2_HOME pour la variable globale. Voir Paramètres Reference :

L’élément settings.xml fichier settings.xml contient des éléments permettant de définir des valeurs permettant de configurer l’exécution de Maven de différentes manières, telles que pom.xml , mais ne doit en aucun cas être associé à un projet spécifique ou dissortingbué à une audience. Celles-ci incluent des valeurs telles que l’emplacement du référentiel local, d’autres serveurs de référentiel distant et des informations d’authentification. Il existe deux emplacements où un fichier settings.xml peut vivre:

  • L’installation de Maven: $M2_HOME/conf/settings.xml
  • Installation d’un utilisateur: ${user.home}/.m2/settings.xml

Une méthode rapide et sale pour déterminer si Maven utilise settings.xml est invaliderait son fichier XML et exécuterait une commande maven sûre nécessitant settings.xml.

S’il lit ce settings.xml alors Maven signale une erreur: “Erreur lors de la lecture de settings.xml …”