Maven settings.xml配置理解

Maven settings.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>D:\mavenTest\repo</localRepository>

	<!--
	//当插件的组织Id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。
	//该元素包含一个pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。
	//当我们使用某个插件,并且没有在命令行为其提供组织Id(groupId)的时候,Maven就会使用该列表。
	//默认情况下该列表包含了org.apache.maven.plugins。
	-->
	<pluginGroups>
	</pluginGroups>

	<!--
	//用来配置不同的代理,多代理profiles可以应对笔记本或移动设备的工作环境:通过简单的设置profile id就可以很容易的更换整个代理配置。
	-->
	<proxies>
	</proxies>

	<!--
	//项目发布到私服配置,
	//配置服务端的一些设置(提供连接上服务器必要的信息),因为连接服务器要认证,这里就是配置认证信息
	-->
	<servers>
		<server>
			<!--
			//这是server的id(注意不是用户登陆的id),该id与distributionManagement(pom.xml文件中)中repository元素的id相匹配。
			-->
			<id>nexus-releases</id>
			<!--
			//鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。
			-->
			<username>xing</username>
			<password>123456</password>
		</server>
		<server>
			<id>nexus-snapshots</id>
			<username>xing</username>
			<password>123456</password>
		</server>
	</servers>

	<!--
	//为仓库列表配置的下载镜像列表。就是本地没有jar时,到这里的服务器中去进行下载回本地仓库中
	-->
	<mirrors>
		<mirror>
			<!--
			//该镜像的唯一标识符。id用来区分不同的mirror元素。名字由你改
			-->
			<id>public</id>
			<!--
			//被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo1.maven.org/maven2)的镜像,
            		//就需要将该元素设置成central。这必须和中央仓库的id central完全一致。
            		//*表示匹配所有远程仓库。
            		//被镜像的服务器的id。就是你想镜像的服务器上仓库ID
			-->
			<mirrorOf>*</mirrorOf>
			<!--
			//该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。被镜像的URL由镜像服务器那里进行配置
			-->
			<url>http://localhost:8081/nexus/content/groups/public</url>
		</mirror>
	</mirrors>

	<!--
	//远程仓库信息的一种参数描述
	-->
	<profiles>
		<profile>
			<!--//该配置的唯一标识符。  -->
			<id>nexus</id>
			<!--
			//远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程项目。
			-->
			<repositories>
				<repository>
					<!--//远程仓库唯一标识-->
					<id>public</id>
					<!--//远程仓库名称 -->
					<name>Public Repositories</name>
					<url>http://localhost:8081/nexus/content/groups/public</url>
					 <!--
					 //如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,
					 //POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,
					 //可能有人会决定只为开发目的开启对快照版本下载的支持。
					 //参见repositories/repository/releases元素
					 -->
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<!--//如何处理远程仓库里发布版本的下载-->
					<releases>
						<!--//true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。  -->
						<enabled>true</enabled>
					</releases>
				</repository>
			</repositories>
			<!--
			//发现插件的远程仓库列表。仓库是两种主要构件的家。第一种构件被用作其它构件的依赖。这是中央仓库中存储的
			//大部分构件类型。另外一种构件类型是插件。Maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其
			//它仓库。pluginRepositories元素的结构和repositories元素的结构类似。每个pluginRepository元素指定一个
			//Maven可以用来寻找新插件的远程地址。
			-->
			<pluginRepositories>
				<pluginRepository>
					<id>public</id>
					<name>Public Repositories</name>
					<url>http://localhost:8081/nexus/content/groups/public</url>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>

 	<!--
 	//手动激活profiles的列表,按照profile被应用的顺序定义activeProfile。 该元素包含了一组activeProfile元素,每个activeProfile都含有一个profile id。
 	//表示那些Profile是可用的,不在列表的表示不能用
 	//激活的profile会将仓库配置应用到项目中去。
 	-->
	<activeProfiles>
		<activeProfile>nexus</activeProfile>
	</activeProfiles>

</settings>




参考原文(setting.xml详解): http://www.cnblogs.com/yangxia-test/p/4409736.html
参考原文(Maven settings配置中的mirrorOf): http://blog.csdn.net/isea533/article/details/21560089
参考原文(profile介绍): http://elim.iteye.com/blog/1900568
参考原文(setting.xml配置文件详解): http://blog.csdn.net/u012152619/article/details/51485152
参考原文(mirror和repository 区别): http://blog.csdn.net/caomiao2006/article/details/40401517


使用例子看附件:

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2332841