maven的setting.xml配置详解

<?xml version="1.0" encoding="UTF-8"?>
 
<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
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: 本地仓库。该值表示构建系统本地仓库的路径,其默认值为~/.m2/repository -->
  <localRepository>C:/Documents and Settings/xdl/.m2/repository</localRepository>
 
 
  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |maven是否需要和用户交互已获得输入。如果maven需要和用户交互已获得输入,
   |则设置成true,反之为false,默认为true
   | Default: true  -->
  <interactiveMode>true</interactiveMode>
  
 
  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |表示maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行,则为true,
   |当由于网络设置原因或者安全因素,构建服务器不能连接远程仓库的时候,该配置就十分有用
   | Default: false-->
  <offline>false</offline>
  
 
  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   | 当插件的组织Id(groupId)没有显示提供时,供搜寻插件组织Id(groupId)列表。该元素包含一个
   |pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。当我们使用某个插件,并且没有在命令行
   |为其提供组织Id(groupId)的时候,maven就会使用该列表.
   -->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
	 -->
    <pluginGroup>com.xdl.web</pluginGroup>
    
  </pluginGroups>
 
  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |用来配置不同的代理,多代理profiles可以应对笔记本或移动设备的工作环境:
   | 通过简单的设置profile id就可以很容易的更换整个代理配置
   -->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |  代理元素包含配置代理时需要的信息
    <proxy>  
		 代理的唯一定义符,用来区分不同的代理元素
      <id>optional</id> 
		 该代理是否是激活的那个。true则激活代理。当我们声明了一组代理,而某个时候只需要激活一个
		 代理的时候,该元素就可以派上用处。
      <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>
   -->
  </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.
   | 配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。
   |这种类型的信息应该存在于构建服务器上的settings.xml文件中
   -->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |服务器元素包含配置服务器时需要的信息
    <server>
		这是server的id(注意不是用户登陆的id),
		该id与distributionManagement中repository元素的id相匹配
      <id>deploymentRepo</id>
		鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码
      <username>repouser</username>
		鉴权密码 。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码
      <password>repopwd</password>
    </server>
    -->
 
    <!-- Another sample, using keys to authenticate. 
    <server>
      <id>siteServer</id>
		鉴权时使用的私钥位置。和前两个元素类似,私钥位置和私钥密码指定了一个私钥的路径(默认是/home
		/hudson/.ssh/id_dsa)以及如果需要的话,一个密语。将来passphrase和password元素可能会被提取到外部,
		但目前它们必须在settings.xml文件以纯文本的形式声明。
      <privateKey>/path/to/private/key</privateKey>
		鉴权时使用的私钥密码
      <passphrase>optional; leave empty if not used.</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
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |给定仓库的下载镜像-->
    <mirror>
		<!--该镜像的唯一标识符。id用来区分不同的mirror元素-->
      <id>planetmirror.com</id>
		<!--被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo1.maven.org
		/maven2)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致-->
      <mirrorOf>central</mirrorOf>
		<!--镜像名称 -->
      <name>PlanetMirror Australia</name>
		<!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL -->
      <url>http://downloads.planetmirror.com/pub/maven2</url>
    </mirror>
    
  </mirrors>
 
  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo. 
	 -->
    <profile>
      <id>jdk-1.6.0_37</id>
 
      <activation>
		<activeByDefault>false</activeByDefault> 
        <jdk>1.6.0_37</jdk>
      </activation>
		
      <repositories><!--远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程项目。 -->  
        <repository><!--包含需要连接到远程仓库的信息 -->  
          <id>codehausSnapshots</id><!--远程仓库唯一标识-->  
          <name>Repository for JDK 1.6.0_37 builds</name>
          <url>http://snapshots.maven.codehaus.org/maven2</url><!--远程仓库URL,按protocol://hostname/path形式 -->  
          <layout>default</layout>
          <!--<snapshotPolicy>always</snapshotPolicy>-->
        </repository>
      </repositories>
    </profile>
   
 
    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     | -->
    <profile>
      <id>env-dev</id>
 
      <activation>
        <property>
          <name>mavenVersion</name>
          <value>2.2.1</value>
        </property>
      </activation>
		
      <!--<properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>-->
    </profile>
   
  </profiles>
 
  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>env-test</activeProfile>
  </activeProfiles>
  -->
</settings>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值