介绍
快速概览
settings.xml
文件中的 settings
元素包含用于定义以各种方式配置Maven执行的值的元素,如pom.xml
,但不应绑定到任何特定项目或分发给受众。这些值包括本地仓库位置、备用远程仓库服务器和身份验证信息。
settings.xml
文件可能位于两个地方:
-
Maven安装:
${maven.home}/conf/settings.xml
-
用户安装:
${user.home}/.m2/settings.xml
前者的 settings.xml
也称为全局设置,后者的 settings.xml
称为用户设置。如果这两个文件都存在,它们的内容就会被合并,而用户特定的 settings.xml
占主导地位。
提示:如果您需要从头开始创建特定于用户的设置,最简单的方法是将全局设置从Maven安装位置复制到${user.home}/.m2
目录中。Maven的默认 settings.xml
是一个包含注释和示例的模板,因此你可以快速调整它以满足您的需求。
以下是settings
下的顶级元素概述:
<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/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
settings.xml
的内容可以使用以下表达式进行插值(interpolated):
1.${user.home}
和所有其他系统属性(自Maven 3.0以来)
2.${env.HOME}
等环境变量
请注意,在settings.xml
中的profiles中定义的属性不能用于插值。
一个简单配置示例
<?xml version="1.0" encoding="UTF-8" ?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<localRepository>D:\maven-repo</localRepository>
<servers>
<server>
<username>testUser</username>
<password>APBNwz5vH2BK2Et9ujKQsWQQ245</password>
<id>central</id>
</server>
<server>
<username>testUser</username>
<password>APBNwz5vH2BK2Et9ujKQsWQQ245</password>
<id>snapshots</id>
</server>
</servers>
<mirrors>
<mirror>
<mirrorOf>*</mirrorOf>
<name>maven</name>
<url>https://artifactory.example.com/artifactory/maven</url>
<id>maven</id>
</mirror>
</mirrors>
<profiles>
<profile>
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>maven</name>
<url>https://artifactory.example.com/artifactory/maven</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>maven</name>
<url>https://artifactory.example.com/artifactory/maven</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>alimaven</id>
<name>aliyun maven</name>
<url&g