Come uso la riga di comando di maven per determinare quale file settings.xml sta raccogliendo Maven?
Come uso la riga di comando di maven per determinare quale file settings.xml sta raccogliendo Maven?
Risposte:
Avvia maven con l'opzione -X (debug) ed esamina l'inizio dell'output. Dovrebbe esserci qualcosa del genere:
...
[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
...
(I nomi di directory originali sono stati rimossi da me)
Il tuo commento alla risposta (corretta) di cletus implica che sono coinvolti più file di impostazioni Maven.
Maven utilizza sempre uno o due file di impostazioni. Le impostazioni globali definite in ($ {M2_HOME} /conf/settings.xml) sono sempre richieste. Il file delle impostazioni utente (definito in $ {user.home} /. M2 / settings.xml) è facoltativo. Qualsiasi impostazione definita nelle impostazioni utente ha la precedenza sulle corrispondenti impostazioni globali.
È possibile sovrascrivere la posizione delle impostazioni globali e dell'utente dalla riga di comando, l'esempio seguente imposta le impostazioni globali su c: \ global \ settings.xml e le impostazioni dell'utente su c: \ user \ settings.xml :
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
Attualmente non esiste alcuna proprietà o mezzo per stabilire da quale utente e file di impostazioni globali sono stati utilizzati con Maven. Per accedere a questi valori, è necessario modificare MavenCli e / o DefaultMavenSettingsBuilder per iniettare i percorsi dei file nell'oggetto Impostazioni risolto.
Puoi usare il plug-in di aiuto di Maven per dirti il contenuto del tuo utente e i file delle impostazioni globali.
mvn help:effective-settings
chiederà a Maven di sputare le impostazioni globali e utente combinate .
Questo è il file di configurazione per Maven. Può essere specificato a due livelli:
Livello utente. Questo file settings.xml fornisce la configurazione per un singolo utente ed è normalmente fornito in $ {user.home} /. M2 / settings.xml.
NOTE: This location can be overridden with the CLI option:
-s /path/to/user/settings.xml
Livello globale. Questo file settings.xml fornisce la configurazione per tutti gli utenti Maven su una macchina (supponendo che tutti stiano usando la stessa installazione di Maven). Normalmente viene fornito in $ {maven.home} /conf/settings.xml.
NOTE: This location can be overridden with the CLI option:
-gs /path/to/global/settings.xml
La M2_HOME
variabile d'ambiente per quella globale. Vedi riferimento alle impostazioni :
L'
settings
elemento nelsettings.xml
file contiene elementi utilizzati per definire i valori che configurano l'esecuzione di Maven in vari modi, come ilpom.xml
, ma non devono essere raggruppati in alcun progetto specifico o distribuiti a un pubblico. Questi includono valori come l'ubicazione del repository locale, i server di repository remoti alternativi e le informazioni di autenticazione. Esistono due posizioni in cui può vivere un file settings.xml:
- L'installazione di Maven:
$M2_HOME/conf/settings.xml
- Installazione di un utente:
${user.home}/.m2/settings.xml
the former settings.xml are also called global settings, the latter settings.xml are referred to as user settings. If both files exists, their contents gets merged, with the user-specific settings.xml being dominant.
Il metodo rapido e sporco per determinare se Maven sta usando settings.xml desiderato invaliderebbe il suo xml ed eseguire alcuni comandi sicuri maven che richiedono settings.xml.
Se legge questo settings.xml, Maven segnala un errore: "Errore durante la lettura di settings.xml ..."