maven settings配置详解
Last updated
Was this helpful?
Last updated
Was this helpful?
settings官方配置详解
settings配置
<?xml version="1.0" encoding="UTF-8"?>
<!--
| 这是Maven的配置文件,有下面两种level:
|
| 1. User Level. 只为单个用户提供配置,通常在${user.home}/.m2/settings.xml 目录下。
|
| 注: 这个位置可以在命令行中输入如下改变:
|
| -s /path/to/user/settings.xml
|
| 2. Global Level.为一台机器上所有Maven用户提供配置。通常在${maven.home}/conf/settings.xml目录下。
|
| 注: 这个位置可以在命令行中输入如下改变:
|
| -gs /path/to/global/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 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| 指定存储Maven要用到jar包的本地仓库位置
| 默认: ~/.m2/repository
-->
<localRepository>/path/to/local/repo</localRepository>
<!-- interactiveMode
| 指定当需要输入时,Maven是否提示.
| 如果设置为false,Maven会使用一个合理的默认值,也许是基于其他设置,比如问题的参数
| 默认: true
-->
<interactiveMode>true</interactiveMode>
<!-- offline
| 指定在build时,是否需要Maven连接网络,去下载一些jar包、部署文件等。
| 默认: false
-->
<offline>false</offline>
<!-- pluginGroups
| 这里面有一系列的group标识,当要解析插件时,会根据前缀自动搜索。
| 比如:当执行命令"mvn prefix:goal". Maven会自动把 "org.apache.maven.plugins" 和"org.codehaus.mojo" 加进来。
|-->
<pluginGroups>
<pluginGroup> com.your.plugins </pluginGroup>
</pluginGroups>
<!-- proxies
| 这里面有一系列的代理设置,无法直接连接中心仓库网络时使用。
| 除非另有说明(通过系统属性或命令行开关),第一个代理规范在这个列表标记为活动将被使用。
|-->
<proxies>
<!--
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
-->
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>218.14.227.197</host>
<port>3128</port>
</proxy>
</proxies>
<!-- servers
| This is a list of authentication profiles, keyed by the server-id used within the system.
| Authentication profiles can be used whenever maven must make a connection to a remote server.
|-->
<servers>
<!-- server
| 指定连接到某台特定服务器时的权限信息, 用id作为唯一标识。
| 注:你可以指定用户名/密码或私钥/口令, 但确保用户名和密码配对,私钥和口令配对
-->
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
<server>
<id>siteServer</id>
<privateKey>/path/to/private/key</privateKey>
<passphrase>可选,如果不用的话,置空</passphrase>
</server>
</servers>
<!-- mirrors
| This is a list of mirrors to be used in downloading artifacts from remote repositories.
|
| It works like this: a POM may declare a repository to use in resolving certain artifacts.
| However, this repository may have problems with heavy traffic at times, so people have mirrored
| it to several places.
|
| That repository definition will have a unique id, so we can create a mirror reference for that
| repository, to be used as an alternate download site. The mirror site will be the preferred
| server for that repository.
|-->
<mirrors>
<!-- mirror
| 表示镜像库,用来代替指定的仓库
-->
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
</mirrors>
<!-- profiles
| Profiles用来指定本地机器路径和仓库位置,使程序可以在本地环境中运行。
| 比如你有一个集成测试的插件 cactus,它需要知道你的tomcat安装在哪。
|-->
<profiles>
<!-- profile
| 指定build过程中需要的一些指示,会使用一个或更多的激活配置。
| 为了集成考虑,通过<activatedProfiles/>标签来激活配置(或用命令行)。
| 每个profile有一个独立的id.
|
| profile识别的常见best practise是使用统一的、直观的、便于理解的命名惯例,。
| 例如:'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett'.
|
| 下面这个profile是指定jdk版本的.
-->
<profile>
<id>jdk-1.4</id>
<activation>
<jdk>1.4</jdk>
</activation>
<repositories>
<repository>
<id>jdk14</id>
<name>Repository for JDK 1.4 builds</name>
<url>http://www.myhost.com/maven/jdk14</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</repository>
</repositories>
</profile>
<!--插件配置的profile
|
| ...
| <plugin>
| <groupId>org.myco.myplugins</groupId>
| <artifactId>myplugin</artifactId>
|
| <configuration>
| <tomcatLocation>${tomcatPath}</tomcatLocation>
| </configuration>
| </plugin>
| ...
-->
<profile>
<id>env-dev</id>
<activation>
<property>
<name>target-env</name>
<value>dev</value>
</property>
</activation>
<properties>
<tomcatPath>/path/to/tomcat/instance</tomcatPath>
</properties>
</profile>
</profiles>
<!-- activeProfiles
| 表示激活的profile,通过上面的profile id 来指定.
-->
<activeProfiles>
<activeProfile>alwaysActiveProfile</activeProfile>
<activeProfile>anotherAlwaysActiveProfile</activeProfile>
</activeProfiles>
</settings>