Maven comando para determinar qué archivo settings.xml Maven está utilizando

¿Cómo uso maven la línea de comando para determinar qué archivo de settings.xml está recuperando Maven?

Inicie maven con la opción -X (depuración) 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 originales del directorio son eliminados por mí)

Su comentario a la respuesta (correcta) de cletus implica que hay varios 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 de 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 ninguna propiedad o medio para establecer qué usuarios y archivos de configuración global se utilizaron 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.

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 escuche la configuración global y de usuario combinada .

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 único 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 

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

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 pom.xml , pero no deben agruparse en ningún proyecto específico ni distribuirse a un público. Estos incluyen valores tales como la ubicación del repository local, servidores de repository remotos alternativos e información de autenticación. Hay dos ubicaciones donde un archivo settings.xml puede vivir:

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

El método rápido y sucio para determinar si Maven está utilizando las configuraciones deseadas .xml sería invalidar su xml y ejecutar algún comando maven seguro que requiera settings.xml.

Si lee este archivo settings.xml, Maven informa un error: “Error al leer settings.xml …”