maven中的settings.xml详解
下文笔者讲述maven中settings.xml的功能详细简介说明,如下所示
settings.xml主要元素
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>
LocalRepository
功能: 设置本地仓库的路径 默认值: ${user.home}/.m2/repository 例: <localRepository>D:\test\repository</localRepository>
InteractiveMode
功能: 表示maven是否需要和用户交互以获得输入 默认值:true
UsePluginRegistry
功能: maven是否需要使用plugin-registry.xml文件来管理插件版本 默认:false
Offline
功能: 表示maven是否需要在离线模式下运行 默认:false 注:在网络不好或安全因素时,可以设置为True
PluginGroups
功能: 当插件的groupid没有显示提供时,提供默认的groupId列表 默认: org.apache.maven.plugins 和 org.codehaus.mojo
proxies
功能: Maven在进行联网时需要使用到的代理 例: <proxies> <proxy> <id>xxx</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器地址</host> <port>代理服务器的端口</port> <nonProxyHosts>不使用代理的主机</nonProxyHosts> </proxy> </proxies>
servers
功能: 配置deploy时远程服务器的用户名和密码 (上传项目时, 在POM中的distributionManagement的URL的验证信息 有些远程服务器也需要用户密码才能下载依赖) 例: <servers> <server> <id>nexus</id> <username>admin</username> <password>admin123</password> </server> </servers>
Mirrors
功能: 镜像仓库(加速jar下载) 例: <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
profiles
作用:配置多种环境参数的profile <profiles> <profile> <!-- profile的唯一标识 --> <id>nexus</id> <!-- 自动触发profile的条件逻辑 --> <activation /> <!-- 扩展属性列表 --> <properties /> <!-- 远程仓库列表 --> <repositories /> <!-- 插件仓库列表 --> <pluginRepositories /> </profile> </profiles> 9.1 activation:自动触发该profile的条件逻辑 例: <activation> <!--profile默认是否激活的标识 --> <activeByDefault>false</activeByDefault> <!--当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 --> <jdk>1.5</jdk> <!--当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 --> <os> <!--激活profile的操作系统的名字 --> <name>Windows XP</name> <!--激活profile的操作系统所属家族(如 'windows') --> <family>Windows</family> <!--激活profile的操作系统体系结构 --> <arch>x86</arch> <!--激活profile的操作系统版本 --> <version>5.1.2600</version> </os> <!--如果Maven检测到某一个属性(其值可以在POM中通过${name}引用),其拥有对应的name = 值,Profile就会被激活。如果值字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 --> <property> <!--激活profile的属性的名称 --> <name>mavenVersion</name> <!--激活profile的属性的值 --> <value>2.0.3</value> </property> <!--提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 --> <file> <!--如果指定的文件存在,则激活profile。 --> <exists>${basedir}/file2.properties</exists> <!--如果指定的文件不存在,则激活profile。 --> <missing>${basedir}/file1.properties</missing> </file> </activation> 9.2 properties:存放变量,如果该profile激活,那么在pom.xml 可以用${xx}来使用 例: <properties> <nexus.ip>http://127.0.0.1:8082</nexus.ip> </properties> pom文件里可以使用${nexus.ip}这个变量 9.3 Repositories:下载依赖的jar的远程仓库的列表 注意:一般包括releases(稳定版)和snapshots(快照版) 例: <repositories> <repository> <id>central</id> <url>${nexus.ip}/repository/maven-public/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> 9.4 pluginRepositories:发现下载插件的远程仓库列表 例: <pluginRepositories> <pluginRepository> <id>central</id> <url>${nexus.ip}/repository/maven-public/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories>
ActiveProfiles
功能: 手动激活profiles的列表 可以同时激活多个profile 如果有相同属性,后面的会覆盖前面的 例: <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。