2009-08-11 9 views

Respuesta

233

experto de inicio con la opción -X (depuración) y examinar el principio de la salida. No debería ser algo como esto:

... 
[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 
... 

(nombres de directorio original se eliminan por mí)

+6

Quizás esto no estuvo en la salida de depuración hasta que se lanzó maven 3, pero su publicación unos 2,5 años más tarde es finalmente la respuesta exacta que estaba buscando (disculpe el retraso de 6 meses en darse cuenta) – harschware

21

La variable de entorno M2_HOME para la global. Ver Settings Reference:

The settings element in the settings.xml file contains elements used to define values which configure Maven execution in various ways, like the pom.xml , but should not be bundled to any specific project, or distributed to an audience. These include values such as the local repository location, alternate remote repository servers, and authentication information. There are two locations where a settings.xml file may live:

  • The Maven install: $M2_HOME/conf/settings.xml
  • A user's install: ${user.home}/.m2/settings.xml
+0

Si esta respuesta implica que la determinación del repositorio se realiza solo examinando el entorno, entonces esta es una respuesta válida. Esperaba aprender sobre un modificador de línea de comandos o algo que ofrezca una lista definitiva de rutas calificadas para todos los archivos settings.xml usados ​​... Creo que probablemente no exista tal mecanismo. – harschware

+3

+1 respuesta, Cletus. Creo que vale la pena mencionar la siguiente línea de su enlace "Configuración de referencia": 'las configuraciones anteriores.xml también se llaman configuraciones globales, las últimas configuraciones.xml se conocen como configuraciones de usuario. Si ambos archivos existen, sus contenidos se combinan, siendo el archivo settings.xml específico del usuario el principal. –

145

su comentario de Cletus (correcta) respuesta implica que hay múltiples archivos de configuración de Maven involucrados.

Maven siempre utiliza uno o dos archivos de configuración. La configuración global definida en ($ {M2_HOME} /conf/settings.xml) siempre es necesaria. El archivo de configuración del usuario (definido en $ {user.home} /. M2/settings.xml) es opcional. Cualquier configuración definida en la configuración del usuario tiene prioridad sobre la configuración global correspondiente.

Puede anular la ubicación de la configuración global y de usuario desde la línea de comandos, el ejemplo siguiente configurará los ajustes globales a c: \ \ settings.xml mundial y la configuración de usuario a c: \ usuario \ settings.xml:

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

Actualmente no hay ninguna propiedad o los medios para establecer qué archivos de configuración global del usuario y se utiliza desde con Maven. Para acceder a estos valores, deberá modificar MavenCli y/o DefaultMavenSettingsBuilder para inyectar las ubicaciones de archivos en el objeto de Configuración resuelto.

+0

sería genial si pudiéramos proporcionar configuraciones de usuario múltiples.xml, por lo que podríamos usarlas con diferentes proyectos, por ejemplo. Sé que podríamos usar un perfil. Pero sería mucho mejor si hubiera un archivo separado. No es posible, ¿verdad? ¡Aclamaciones! – despot

+0

Estaba buscando una solución para anular mi configuración de usuario solo una vez sin tener que manipular el archivo. Así que acabo de utilizar el archivo global para la configuración del usuario. Es decir. --settings c: \ global \ settings.xml de esta manera el archivo del usuario se omitió – msparer

+0

@despot, tarde para la fiesta, pero de una manera que se puede a través de múltiples perfiles definidos y algunos 'disparadores' personalizados: https: //maven.apache .org/settings.html # Activation – indivisible

32

Este es el archivo de configuración para Maven. Se puede especificar en dos niveles:

  1. Nivel de usuario. Este archivo settings.xml proporciona la configuración para un solo usuario, y normalmente se proporciona en $ {user.home} /. M2/settings.xml.

      NOTE: This location can be overridden with the CLI option: 
    
          -s /path/to/user/settings.xml 
    
  2. Nivel global. Este archivo settings.xml proporciona la configuración para todos los usuarios de Maven en una máquina (suponiendo que todos estén usando la misma instalación de Maven ). Normalmente se proporciona en $ {maven.home} /conf/settings.xml.

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

la propiedad es M2_HOME, no maven.home –

+0

No importa. Si configuras la variable de entorno usando maven.home, no será un problema – firstthumb

21

método rápido y sucio para determinar si está utilizando Maven settings.xml deseada sería invalidar su xml y ejecutar algún comando experto en seguridad que requiere settings.xml.

Si se lee este settings.xml continuación Maven informa de un error: "settings.xml Error al leer ..."

+3

Si bien la respuesta de Cletus fue muy informativa, esta respuesta es en sentido estricto más de lo que estaba buscando (dado que parece que no hay ninguna configuración). mecanismo de informe de archivos xml en Maven mismo) – harschware

83

Puede utilizar el maven help plugin para decirle el contenido de su usuario y archivos de configuración globales.

mvn help:effective-settings 

experto le pedirá a escupir los configuración global y de usuario combinados.

+0

Me ayuda a actualizar el viejo repositorio de maven http://repo1.maven.org/maven2/ a http://search.maven.org – Ricardo

+0

Perfecto, justo lo que estaba buscando – pdem

Cuestiones relacionadas