mirrors generate create configurar maven command-line maven-2 settings

generate - Comando Maven para determinar qué archivo settings.xml está usando Maven



maven settings.xml mirror (6)

¿Cómo uso la línea de comandos de maven para determinar qué archivo de configuración.xml está recogiendo Maven?


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 (asumiendo 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


Inicie maven con la opción -X (depurar) y examine el comienzo de la salida. Debería haber 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 ...

(Los nombres de directorio originales son eliminados por mi)


La variable de entorno M2_HOME para el global. Ver referencia de configuración :

El elemento de settings en el archivo settings.xml contiene elementos utilizados para definir valores que configuran la ejecución de Maven de varias maneras, como el pom.xml , pero no se deben agrupar en ningún proyecto específico ni distribuir a una audiencia. Estos incluyen valores como la ubicación del repositorio local, servidores de repositorio remotos alternativos e información de autenticación. Hay dos ubicaciones donde puede vivir un archivo settings.xml:

  • La instalación de Maven: $M2_HOME/conf/settings.xml
  • ${user.home}/.m2/settings.xml un usuario: ${user.home}/.m2/settings.xml

Puede usar el complemento de ayuda de maven para informarle el contenido de su usuario y los archivos de configuración global.

mvn help:effective-settings

Le pedirá a Maven que escupa las configuraciones globales y de usuario combinadas .


Su comentario a la respuesta (correcta) de cletus implica que hay múltiples archivos de configuración de Maven involucrados.

Maven siempre usa 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 del usuario desde la línea de comandos, el siguiente ejemplo establecerá la configuración global en c: / global / settings.xml y la configuración del usuario en c: / user / settings.xml :

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

Actualmente no hay propiedades ni medios para establecer qué archivos de configuración global y de usuario se utilizaron con Maven. Para acceder a estos valores, tendría que modificar MavenCli y / o DefaultMavenSettingsBuilder para inyectar las ubicaciones de los archivos en el objeto Configuración resuelto.


Un método rápido y sucio para determinar si Maven está usando la configuración deseada. Xml sería invalidar su xml y ejecutar algún comando de seguridad seguro que requiera la configuración de.xml.

Si lee este archivo settings.xml, Maven notifica un error: "Error al leer la configuración.xml ..."