¿Cómo uso la línea de comandos de maven para determinar qué archivo settings.xml está recogiendo Maven?
¿Cómo uso la línea de comandos de maven para determinar qué archivo settings.xml está recogiendo Maven?
Respuestas:
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 de directorio originales los elimino yo)
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. Siempre se requiere la configuración global definida en ($ {M2_HOME} /conf/settings.xml). 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 existe ninguna propiedad o medio para establecer desde qué usuario se utilizaron los archivos de configuración global con Maven. Para acceder a estos valores, deberá modificar MavenCli y / o DefaultMavenSettingsBuilder para inyectar las ubicaciones de los archivos en el objeto de configuración resuelto.
Puede usar el complemento de ayuda de Maven para indicarle el contenido de su usuario y los archivos de configuración global.
mvn help:effective-settings
le pedirá a maven que escupe la configuración combinada global y de usuario .
Este es el archivo de configuración para Maven. Se puede especificar en dos niveles:
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
Nivel global. Este archivo settings.xml proporciona 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 M2_HOME
variable de entorno para la global. Ver Configuración de referencia :
El
settings
elemento en elsettings.xml
archivo contiene elementos utilizados para definir valores que configuran la ejecución de Maven de varias maneras, como elpom.xml
, pero no deben agruparse en ningún proyecto específico ni distribuirse 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
- La instalación de un usuario:
${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.
El método rápido y sucio para determinar si Maven está utilizando settings.xml deseado invalidaría su xml y ejecutaría algún comando seguro de maven que requiera settings.xml.
Si lee este settings.xml, Maven informa un error: "Error al leer settings.xml ..."