El archivo de configuración de Maven, xml existe en dos lugares:
1. Lugar de instalación: $ {m2_home} /conf/settings.xml
2. Directorio de usuario: $ {user.home}/. M2/settings.xml
El primero también se llama configuración global, que es efectiva para todos los usuarios del sistema operativo; Este último se llama configuración del usuario, que es efectiva solo para los usuarios del sistema operativo actual. Si ambos existen, su contenido se fusionará y la configuración de todo el usuario.xml sobrescribe la configuración global.xml.
Después de instalar Maven, settings.xml no se generará automáticamente en el directorio de usuario, solo el archivo de configuración global está disponible. Si necesita crear settings.xml de todo el usuario, puede copiar configuraciones en la ruta de instalación al directorio $ {user.home}/. M2/. La configuración predeterminada de Maven.xml es una plantilla que contiene comentarios y ejemplos. Puede modificarlo rápidamente para cumplir con sus requisitos.
Una vez que se cambia la configuración global, todos los usuarios se verán afectados. Si se actualiza Maven, se borrarán todas las configuraciones. Por lo tanto, debe copiar y hacer una copia de seguridad del archivo $ {m2_home} /conf/settings.xml por adelantado. En general, no se recomienda configurar Global Settings.xml.
settings.xml Explicación detallada
Especificaciones de declaración
<? xml versión = "1.0" encoding = "utf-8"?> <settings xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
propositorio local
<!- El camino hacia el repositorio local. El valor predeterminado es $ {user.home}/. M2/Repository. -> <LocalRepository> USR/Local/Maven </LocalRepository>interacción
<!- Maven necesita interactuar con el usuario para obtener la entrada. Si Maven necesita interactuar con el usuario para obtener la entrada, configurar en True, de lo contrario, debería ser falso. El valor predeterminado es verdadero. -> <S interactivEmode> true </interactivEmode>
UsepluginRregistry
<!-Maven necesita usar el archivo plugin-registry.xml para administrar la versión del complemento. Establezca en True Si necesita dejar que Maven use el archivo $ {user.home}/. M2/plugin-registry.xml para administrar la versión del complemento. El valor predeterminado es falso. -> <usePlugInRegistry> FALSE </UsePlugInRegistry>Fuera de línea sin conexión
<!-Indica si Maven necesita ejecutarse en modo fuera de línea. Verdadero Si el sistema de compilación debe ejecutarse en modo fuera de línea, el valor predeterminado es falso. Esta configuración es muy útil cuando el servidor de compilación no puede conectarse al repositorio remoto debido a la configuración de la red o los factores de seguridad. -> <fuerte> falso </offline>
grupo de pluging
< Este elemento contiene una lista de elementos PlugingRoup, cada elemento infantil contiene una ID de organización (GroupId). Cuando usamos un complemento y no proporcionamos una ID de organización (GroupID) cuando el comando actúa, Maven usará la lista. Por defecto, la lista contiene org.apache.maven.plugins y org.codehaus.mojo-> <glugingroups> <!-ID de organización de plugin (groupId)-> <glugingroup> org.codehaus.mojo </tugingroup> </tugingroups>
apagones
< -> <PROXIES> <!-El elemento proxy contiene la información necesaria al configurar el proxy-> <proxy> <!-La definición única del proxy se usa para distinguir diferentes elementos de proxy. -> <id> myproxy </id> <!-¿Es este proxy el que se activa? True activa el proxy. Cuando declaramos un conjunto de agentes y en algún momento solo se debe activar un agente, ese elemento puede ser útil. -> <Aptive> True </sitive> <!-Proxy Protocol. Protocolo: // Nombre de host: puerto, separado en elementos discretos para una fácil configuración. -> <protocol> http </protocol> <!-nombre de host del proxy. Protocolo: // Nombre de host: puerto, separado en elementos discretos para una fácil configuración. -> <gest> proxy.somewhere.com </gest> <!-El puerto proxy. Protocolo: // Nombre de host: puerto, separado en elementos discretos para una fácil configuración. -> <port> 8080 </port> <!-El nombre de usuario, el nombre de usuario y la contraseña del nombre de inicio de sesión autenticado del servidor proxy y la contraseña. -> <Serername> Proxyuser </ssoceame> <!-La contraseña del proxy, el nombre de usuario y la contraseña representan el nombre de inicio de sesión y la contraseña para la autenticación del servidor proxy. -> <Asswords> SomePassword </contraseña> <!-Lista de nombres de host que no deben ser proxyes. El delimitador para esta lista es especificado por el servidor proxy; En el ejemplo, se usa delimitador de la línea vertical, y la coma también es común. -> <NoProxyHosts>*. Google.com | ibiblio.org </nonproxyhosts> </proxy> </ proxies>
Servidor
<!-Configure algunas configuraciones en el servidor. Algunas configuraciones, como los certificados de seguridad, no deben distribuirse con pom.xml. Este tipo de información debe existir en el archivo settings.xml en el servidor de compilación. -> <servers> <!-El elemento del servidor contiene la información necesaria al configurar el servidor-> <verver> <!-Esta es la ID del servidor (tenga en cuenta que no es la ID del inicio de sesión del usuario), lo que coincide con la ID del elemento del repositorio en la administración de distribución. -> <id> Server001 </id> <!-Nombre de usuario autorizado. El nombre de usuario de la autenticación y la contraseña de autenticación representan el nombre de inicio de sesión y la contraseña requeridas para la autenticación del servidor. -> <Serername> my_login </sserername> <!-Contraseña de autorización. El nombre de usuario de la autenticación y la contraseña de autenticación representan el nombre de inicio de sesión y la contraseña requeridas para la autenticación del servidor. La función de cifrado de contraseña se ha agregado a 2.1.0+. Para obtener más detalles, visite la página de cifrado de contraseña-> <Bassword> My_Password </shazing> <!-La ubicación de la clave privada utilizada durante la autenticación. Similar a los dos primeros elementos, la ubicación de la clave privada y la contraseña de la clave privada especifican la ruta a una clave privada (predeterminada es $ {user.home}/. Ssh/id_dsa) y una declaración secreta si es necesario. En el futuro, los elementos de frase y contraseña se pueden extraer externamente, pero actualmente deben declararse en texto plano en el archivo settings.xml. -> <portekey> $ {usr.home}/. SSH/ID_DSA </privateKey> <!-La contraseña de la clave privada utilizada para la autenticación. -> <as PassPhrase> Some_Passphrase </assphrase> <!-Permisos cuando se crea el archivo. Si se crea un archivo o directorio de repositorio durante la implementación, puede usar permisos. El valor legal de estos dos elementos es un número de tres dígitos, que corresponde a los permisos del sistema de archivos UNIX, como 664, o 775.-> <FilePermissions> 664 </filePermissions> <!-Permisos cuando se crea el directorio. -> <DirectoryPermissions> 775 </DirectoryPermissions> </Server> </servers>espejos
<!-Descargue la lista de espejos configurados para la lista de repositorio. Para la configuración avanzada, consulte la página Configuración de espejo-> <Mirrors> <!-Descargue el espejo para un repositorio determinado. -> <prirror> <!-El identificador único del espejo. ID se usa para distinguir diferentes elementos de espejo. -> <id> Planetmirror.com </id> <!-Nombre de espejo-> <name> Planetmirror Australia </name> <!-La URL de la imagen. El sistema de compilación priorizará utilizando esta URL en lugar de usar la URL de servidor predeterminada. -> <URL> http://downloads.planetmirror.com/pub/maven2 </sl> <!-ID del servidor reflejado. Por ejemplo, si queremos configurar un espejo del repositorio central de Maven (http://repo.maven.apache.org/maven2/), necesitamos establecer el elemento en Central. Esto debe ser exactamente lo mismo que el ID Central del almacén central. -> <Mirrorof> Central </Mirrorof> </prirror> </prirrors>
Perfiles
<!-Ajuste la lista de configuraciones de compilación de acuerdo con los parámetros del entorno. El elemento de perfil en settings.xml es la versión recortada del elemento de perfil en pom.xml. Contiene ID, activación, repositorios, elementos de pluginrepositorios y propiedades. El elemento de perfil aquí solo contiene estos cinco elementos infantiles porque solo se preocupa por todo el sistema de construcción (este es el posicionamiento de roles del archivo settings.xml), en lugar de la configuración separada del modelo de objetos del proyecto. Si se activa un perfil en una configuración, su valor sobrescribe cualquier otro perfil definido en POM o perfil.xml con la misma ID. -> <playpeses> <!-Configuración de componentes ajustados según los parámetros de entorno-> <perry> <!-El identificador único de esta configuración. -> <id> test </id>
Activación
<!-La lógica condicional de activar automáticamente el perfil. La activación es la clave de apertura del perfil. Al igual que los perfiles en POM, el poder de los perfiles proviene de su capacidad para usar automáticamente ciertos valores en ciertos entornos específicos; Estos entornos son especificados por el elemento de activación. El elemento de activación no es la única forma de activar un perfil. El elemento ActiveProfile en el archivo settings.xml puede contener la ID del perfil. El perfil también se puede activar explícitamente (prueba de EG -P) en la línea de comando usando una etiqueta -p y una lista separada por comas. -> <Anectation> <!-Identificación de si el perfil se activa por defecto-> <ActiveByDefault> FALSE </ActiveByDefault> <!-Cuando se detecta el JDK coincidente, el perfil se activa. Por ejemplo, 1.4 activa JDK1.4, 1.4.0_2, mientras que! 1.4 activa todas las versiones de JDK que comienzan con 1.4. -> <jdk> 1.5 </jdk> <!-Cuando se detecta el atributo del sistema operativo coincidente, el perfil se activa. El elemento OS puede definir algunos atributos relacionados con el sistema operativo. -> <s OS> <!-El nombre del sistema operativo que activa el perfil-> <name> Windows XP </name> <!-La familia del sistema operativo que activa el perfil (como 'Windows')-> <Family> Windows </Family> <!-La arquitectura del sistema operativo del perfil-> <Ach> x86 </arco> <!-la versión del sistema operativo del perfil-> <versión> 5.1.1.2.260000 < Si el campo de valor está vacío, el perfil se activará si existe el campo Nombre de propiedad. De lo contrario, el campo Valor de propiedad se igualará de manera sensible a los casos-> <propers> <!-El nombre de la propiedad que activa el perfil-> <name> maveNversion </name> <!-El valor de la propiedad que activa el perfil-> <valor> 2.0.3 </valor> </sperties> <!-proporciona un nombre de archivo que activa el perfil al detectar la existencia o no existencia del archivo. Falta de comprobación si el archivo existe y activa el perfil si no existe. Por otro lado, existe verificará si el archivo existe y activará el perfil si existe. -> <chile> <!-Si existe el archivo especificado, active el perfil. -> <exists> $ {BaseIR} /file2.properties </exists> <!-Si el archivo especificado no existe, active el perfil. -> <seling> $ {Basedir} /file1.Properties </seting> </sche> </soltation> Propiedades
<!-La lista de atributos extendidos correspondientes al perfil. El atributo Maven es el mismo que el atributo en ANT, y puede usarse para almacenar algunos valores. Estos valores se pueden usar en cualquier lugar de POM con la etiqueta $ {x}, donde X se refiere al nombre de la propiedad. Los atributos están disponibles en cinco formularios diferentes y están accesibles en el archivo settings.xml. 1. Env.x: prefijo con "env". devolverá una variable de entorno de shell. Por ejemplo, "env.path" se refiere a la variable de entorno de ruta $ (% de ruta% en las ventanas). 2. Project.x: se refiere al valor del elemento correspondiente en el POM. Por ejemplo: <Project> <PROPELACIÓN> 1.0 </PROPORed> </proyecto> Obtener el valor de la versión a través de $ {Project.Version}. 3. Settings.x: se refiere al valor del elemento correspondiente en Settings.xml. Por ejemplo: <tallings> <offline> false </oflline> </etnetings> obtenga el valor de fuera de línea a través de $ {settings.offline}. 4. Propiedades del sistema Java: se pueden acceder a todas las propiedades a través de java.lang.system.getProperties () en POM utilizando este formulario, como $ {java.home}. 5. X: Establezca en el elemento <Properties/>, o en un archivo externo, use como $ {SomeVar}. -> <propersies> <user.install> $ {user.home}/our-Project </user.install> </propiedades>Nota: Si el perfil se activa, puede usar $ {user.install} en el POM nuevamente.
Repositorios
<!-Lista de repositorio remoto, que es un conjunto de proyectos remotos utilizados por Maven para completar el repositorio local del sistema de compilación. -> <repositories> <!-Contiene información que debe conectarse al repositorio remoto-> <repositorio> <!-Remoto Repositorio Identificador único-> <id> CodeHausSnapShots </id> <!-Remote Repositorio Name-> <name> CodeHous Snapshots </Name> <!-Cómo tratar con la descarga de las versiones publicadas en Remote Repository-<Name> <NameS El repositorio está abierto para descargar un cierto tipo de componente (versión de versión, versión de instantánea). -> <Dabled> FALSE </Ensevable> <!-Este elemento especifica con qué frecuencia ocurre la actualización. Maven compara las marcas de tiempo del POM local y el POM remoto. Las opciones aquí son: siempre, diariamente (predeterminado, diariamente), intervalo: x (aquí x es un intervalo de tiempo en minutos), o nunca (nunca). -> <policy> siempre </updatePolicy> <!-Qué hacer cuando el archivo de verificación de componentes de verificación Maven falla -ignore, fallas o advertencia. -> <CheckSumpolicy> Warn </checkSumpolicy> </arseles> <!-Cómo lidiar con la descarga de versiones de instantáneas en repositorio remoto. Con los dos conjuntos de configuraciones, versiones y instantáneas, POM puede adoptar diferentes estrategias para cada tipo de componente en cada repositorio separado. Por ejemplo, alguien podría decidir habilitar el soporte para descargas de versión de instantánea solo para fines de desarrollo. See repositories/repository/releases element --> <snapshots> <enabled/><updatePolicy/><checksumPolicy/> </snapshots> <!--Remote repository URL, in protocol://hostname/path form --> <url>http://snapshots.maven.codehaus.org/maven2</url> <!--The repository layout Tipo utilizado para localizar y clasificar los componentes: puede ser predeterminado o heredado. Maven 2 proporciona un diseño predeterminado para su repositorio; Sin embargo, Maven 1.x tiene un diseño diferente. Podemos usar este elemento para especificar si el diseño es predeterminado o heredado. -> <LECEOUT> predeterminado </loutout> </ Repository> </Repository> <!-Descubra la lista remota de repositorio de complementos. Los almacenes son casas con dos componentes principales. El primer componente se usa como dependencia de otros componentes. Este es la mayoría de los tipos de componentes almacenados en un almacén central. Otro tipo de componente son los complementos. El complemento Maven es un tipo especial de componente. Por esta razón, el repositorio de complemento es independiente de otros repositorios. La estructura del elemento PluginRepositors es similar a la del elemento de repositorios. Cada elemento PluginRepository especifica una dirección remota que Maven puede usar para encontrar el nuevo complemento. -> <PluginRepositories> <!-Contiene información que debe conectarse al repositorio remoto de complemento. Consulte la descripción de perfiles/perfil/repositories/repository elemento-> <pluginRepository> <lotess> <Dabled/> <updatePolicy/> <checkSumpolicy/> </lotess> <Snapshots> <Dabled/> <UpdatePolicy/> <CheckSumpolicy/> </Snapshots> <Di/> <Name/> <SUSL/> <LECEOUT <> </> </> </>> </plugeTreny/>>>>>>> <AlleOut/> </plugeTreTory>>>>>>> <AlleOut/> </plugeTrinTory </pluginRepository> </perrate> </plapes>
Profiles activos
< Este elemento contiene un conjunto de elementos ActiveProfile, cada uno de los cuales contiene una ID de perfil. Cualquier ID de perfil definida en ActiveProfile se activará independientemente de la configuración del entorno. Si no hay perfil coincidente, no pasa nada. Por ejemplo, si la prueba de ENV es un ActiveProfile, se activará el perfil correspondiente a la ID en pom.xml (o perfil.xml). Si dicho perfil no se puede encontrar durante la ejecución, Maven se ejecutará como de costumbre. -> <ActiveProfiles> <!--> <ActiveProfile> Env-test </sitiveProfile> </ activoProfiles> </settings>
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.