maven学习(一)setting.xml配置文件详解
maven环境搭建:
1.官网下载zip包,解压至任意目录(如:E:\wly\apache-maven-3.2.5)
2.环境变量MAVEN_HOME(E:\wly\apache-maven-3.2.5)、path追加"%MAVEN_HOME%\bin;"
3.cmd命令行mvn -v,正常输出maven版本代表OK
settings.xml详解:
操作setting.xml之前,先了解一下maven是基于用户的。默认全局的配置文件"maven安装目录/conf/settings.xml",可以拷贝"settings.xml"放到"用户目录/.m2"/下,此时用户目录下的settings.xml会覆盖原配置。
接下来我们看一下settings.xml中都能配置什么?下面内容以3.3.9版本为例:
官方文档传送门:http://maven.apache.org/ref/3.3.9/maven-settings/settings.html
配置大纲:
localRepository 本地仓库,默认在用户/.m2/repository interactiveMode 交互模式,默认为true
usePluginRegistry 是否使用plugin-registry.xml文件管理插件版本,默认为false offline 是否使用离线模式,默认为false proxies/proxy* 配置代理,通常给无法直接访问中央仓库的用户使用 servers/server* 服务器身份认证,比如当需要deploy一个包到远程仓库时,需要权限验证。此配置属于公用配置,且配置在pom.xml中不太安全,通常与<distributionManagement><id>匹配 mirrors/mirror* 镜像配置,会覆盖远程仓库配置 profiles/profile* 用于配置不同环境的差异文件 activeProfiles/activeProfile* 手动激活的默认差异文件 pluginGroups/pluginGroup* 当插件的groupId没有显式提供,从此插件的group中寻找需要的插件
详细配置说明:
代理(proxies/proxy*):
<proxies>
<proxy>
<!-- 代理标识 -->
<id>testProxy</id>
<!-- 是否激活,默认是true -->
<active>true</active>
<!-- 代理协议 -->
<protocol>http</protocol>
<!-- 用户名 -->
<username>wang</username>
<!-- 密码 -->
<password>123</password>
<!-- 端口 -->
<port>8099</port>
<!-- 主机 -->
<host>proxy.xxx.com</host>
<!-- 不需要代理的主机 -->
<nonProxyHosts>*.xx1.com|*.xx2.com</nonProxyHosts>
</proxy>
</proxies>
服务器认证(servers/server*):支持用户名/密码,公钥/私钥两种认证方式
<servers>
<server>
<!-- 服务标识 -->
<id>server1</id>
<!-- 用户名 -->
<username>wang</username>
<!-- 密码 -->
<password>123</password>
</server>
<server>
<id>server2</id>
<privateKey>wang</username>
<passphrase>456</passphrase>
</server>
</servers>
镜像(mirrors/mirror*):用<mirrorOf>配置覆盖一个或者多个仓库的配置。
<mirrorOf>元素:
* = everything
external:* = everything not on the localhost and not file based.
repo,repo1 = repo or repo1
*,!repo1 = everything except repo1
优点:1.速度快 2.使用自定义镜像可管控
<mirrors>
<mirror>
<!-- 镜像id,唯一标识 -->
<id>central-mirror</id>
<!-- 镜像名称 -->
<name>Maven China Mirror</name>
<!-- 镜像地址 -->
<url>http://search.maven.org/#browse</url>
<!-- 这个是谁的镜像,覆盖哪个仓库的配置 -->
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
环境差异文件(profiles/profile*):
<profiles>
<!--通过某些条件匹配来激活不同<profile>,如jdk、os、属性和属性值等等-->
<profile>
<!-- 唯一标识id -->
<id>jdk-1.6</id>
<!-- 激活条件 -->
<activation>
<jdk>1.6</jdk>
</activation>
<!-- 键值对属性 -->
<properties>
<property.key>property.value</property.key>
<!--
maven支持使用占位符的方式设置或获取值
1.env:操作系统环境变量
2.project.x:当前project的属性
3.setttings.x:对应settings.xml文件的属性
4.properties文件中的属性(redis.ip=10.11.12.13):redis.ip
5.x:<properties>中设置的属性
-->
<anykey>${env.path}</anykey>
</properties>
<!-- 仓库配置 -->
<repositories>
<repository>
<id>仓库id</id>
<name>仓库名称</name>
<url>仓库url</url>
<layout>在Maven 2/3中都是default,只有在Maven 1.x中才是legacy,默认也是default</layout>
<!-- 发布的稳定版本 -->
<releases>
<checksumPolicy>当组件校验失败时,warn或fail</checksumPolicy>
<enabled>是否使用此库下载组件</enabled>
<updatePolicy>当组件在本地不存在时的更新策略:always、daily(default)、interval:xx(in minutes)、never</updatePolicy>
</releases>
<!-- 快照版本,注释同上 -->
<snapshots>
<checksumPolicy></checksumPolicy>
<enabled></enabled>
<updatePolicy></updatePolicy>
</snapshots>
</repository>
</repositories>
<!-- 插件仓库 -->
<pluginRepositories>
<pluginRepository>
<!-- 配置与repository类似 -->
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
激活某个差异文件(activeProfiles/activeProfile*):
<!-- 指定某个profile生效 -->
<activeProfiles>
<activeProfile>对应profile id</activeProfile>
</activeProfiles>
当插件groupId没有显示提供,使用此groupId进行查找(pluginGroups/pluginGroup*):
<pluginGroups>
<!-- 当插件groupId没有显示提供,使用此groupId查找插件 -->
<!-- 官网:(Many) List of groupIds to search for a plugin when that plugin groupId is not explicitly provided. -->
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>
maven学习(一)setting.xml配置文件详解的更多相关文章
- 【maven学习】pom.xml文件详解
环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示, ...
- Maven之(六)setting.xml配置文件详解
setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...
- Maven之setting.xml配置文件详解
setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...
- 【maven学习】settings.xml文件详解
环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 Settings.xml是设置maven参数的配置文件,包含类似本地仓储位置.修改远程仓储服务器.认证信息等配置.p ...
- Maven系列二setting.xml 配置详解
文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...
- Maven中的pom.xml配置文件详解
原文:http://blog.csdn.net/u012152619/article/details/51485297 <project xmlns="http://maven.apa ...
- 6.Maven之(六)setting.xml配置文件详解
转自:https://blog.csdn.net/u012152619/article/details/51485152
- Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)
摘录网址: http://blog.csdn.net/u010107350/article/details/51292500 对于MyBatis的学习而言,最好去MyBatis的官方文档:http:/ ...
- struts2学习笔记--struts.xml配置文件详解
这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...
随机推荐
- ST第一章基础概念
1.1程序由程序.数据.文档 测试对象 软件测试目的:发现尽可能多的软件缺陷,并期望通过改错把缺陷统统排除,提高软件质量 1.2 ST分类 1.2.1 方式分类 (1)静态测试 :不执行被测对象程序代 ...
- springMVC上传功能(单文件和多文件上传)
单文件和多文件上传 首先在xxx-select.xml里面配置上传的大小和编码 <bean id="multipartResolver" class="org.sp ...
- LeetCode231.2的幂
231.2的幂 描述 给定一个整数,编写一个函数来判断它是否是 2 的幂次方. 示例 示例 1: 输入: 1 输出: true 解释: 2^0 = 1 示例 2: 输入: 16 输出: true 解释 ...
- 报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出。网上查询了一些.NET 的C#例子,发现都实现的比较复杂
报表中经常遇到的一个头疼的问题是需要自动选择过去一个月的数据作为当前报表输出.网上查询了一些.NET 的C#例子,发现都实现的比较复杂,其实这个问题可以很简单的通过.NET的DateTime函数来实现 ...
- intelliJ idea像eclipse一样在class中断点调试
安装插件 Bytecode Viewwe Java Bytecode Decompiler
- PIE SDK过滤控制
1. 功能简介 栅格数据前置过滤是在渲染之前对内存中的数据根据特定的规则进行处理,然后再进行数据渲染.本示例以定标为例进行示例代码编写. 定标(校准)是将遥感器所得的测量值变换为绝对亮度或变换为与地 ...
- python学习12-反射 判断函数与方法(转载)
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): passpri ...
- 《HTTP权威指南》之HTTP连接管理及对TCP性能的考虑
在上一篇博客中(<HTTP权威指南>之HTTP相关概念详解)我们简单对HTTP相关的基本概念做了一些简单的了解,但未对HTTP连接管理的内容做一些详细的介绍.本篇博客我们就一起来看一下HT ...
- Android代码中实现WAP方式联网
无论是移动.联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式.其中NET方式跟WIFI方式一样,无需任何设置,可自由访问所有类型网站,而WAP方式,需要手机先设置代理服务器和端口号 ...
- 进入保护模式(一)——《x86汇编语言:从实模式到保护模式》读书笔记12
之前已经做了一些理论上的铺垫,这次我们就可以看代码了. 一.代码清单 ;代码清单11-1 ;文件名:c11_mbr.asm ;文件说明:硬盘主引导扇区代码 ;创建日期:2011-5-16 19:54 ...