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

配置大纲:

  1. localRepository     本地仓库,默认在用户/.m2/repository
  2.  
  3. interactiveMode     交互模式,默认为true
  4. usePluginRegistry   是否使用plugin-registry.xml文件管理插件版本,默认为false
  5.  
  6. offline        是否使用离线模式,默认为false
  7.  
  8. proxies/proxy*    配置代理,通常给无法直接访问中央仓库的用户使用
  9.  
  10. servers/server*   服务器身份认证,比如当需要deploy一个包到远程仓库时,需要权限验证。此配置属于公用配置,且配置在pom.xml中不太安全,通常与<distributionManagement><id>匹配
  11.  
  12. mirrors/mirror*   镜像配置,会覆盖远程仓库配置
  13.  
  14. profiles/profile* 用于配置不同环境的差异文件
  15.  
  16. activeProfiles/activeProfile* 手动激活的默认差异文件
  17.  
  18. pluginGroups/pluginGroup* 当插件的groupId没有显式提供,从此插件的group中寻找需要的插件

详细配置说明:

代理(proxies/proxy*):

  1. <proxies>
  2. <proxy>
  3. <!-- 代理标识 -->
  4. <id>testProxy</id>
  5. <!-- 是否激活,默认是true -->
  6. <active>true</active>
  7. <!-- 代理协议 -->
  8. <protocol>http</protocol>
  9. <!-- 用户名 -->
  10. <username>wang</username>
  11. <!-- 密码 -->
  12. <password>123</password>
  13. <!-- 端口 -->
  14. <port>8099</port>
  15. <!-- 主机 -->
  16. <host>proxy.xxx.com</host>
  17. <!-- 不需要代理的主机 -->
  18. <nonProxyHosts>*.xx1.com|*.xx2.com</nonProxyHosts>
  19. </proxy>
    </proxies>

服务器认证(servers/server*):支持用户名/密码,公钥/私钥两种认证方式

  1. <servers>
  2. <server>
  3. <!-- 服务标识 -->
  4. <id>server1</id>
  5. <!-- 用户名 -->
  6. <username>wang</username>
  7. <!-- 密码 -->
  8. <password>123</password>
  9. </server>
  10. <server>
  11. <id>server2</id>
  12. <privateKey>wang</username>
  13. <passphrase>456</passphrase>
  14. </server>
  15. </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.使用自定义镜像可管控

  1. <mirrors>
  2. <mirror>
  3. <!-- 镜像id,唯一标识 -->
  4. <id>central-mirror</id>
  5. <!-- 镜像名称 -->
  6. <name>Maven China Mirror</name>
  7. <!-- 镜像地址 -->
  8. <url>http://search.maven.org/#browse</url>
  9. <!-- 这个是谁的镜像,覆盖哪个仓库的配置 -->
  10. <mirrorOf>central</mirrorOf>
  11. </mirror>
  12. </mirrors>

环境差异文件(profiles/profile*):

  1. <profiles>
  2. <!--通过某些条件匹配来激活不同<profile>,如jdk、os、属性和属性值等等-->
  3. <profile>
  4. <!-- 唯一标识id -->
  5. <id>jdk-1.6</id>
  6. <!-- 激活条件 -->
  7. <activation>
  8. <jdk>1.6</jdk>
  9. </activation>
  10. <!-- 键值对属性 -->
  11. <properties>
  12. <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>中设置的属性
              -->
  1. <anykey>${env.path}</anykey>
  1. </properties>
  1. <!-- 仓库配置 -->
  2. <repositories>
  3. <repository>
  4. <id>仓库id</id>
  5. <name>仓库名称</name>
  6. <url>仓库url</url>
  7. <layout>在Maven 2/3中都是default,只有在Maven 1.x中才是legacy,默认也是default</layout>
  8. <!-- 发布的稳定版本 -->
  9. <releases>
  10. <checksumPolicy>当组件校验失败时,warn或fail</checksumPolicy>
  11. <enabled>是否使用此库下载组件</enabled>
  12. <updatePolicy>当组件在本地不存在时的更新策略:always、daily(default)、interval:xx(in minutes)、never</updatePolicy>
  13. </releases>
  14. <!-- 快照版本,注释同上 -->
  15. <snapshots>
  16. <checksumPolicy></checksumPolicy>
  17. <enabled></enabled>
  18. <updatePolicy></updatePolicy>
  19. </snapshots>
  20. </repository>
  21. </repositories>
  22. <!-- 插件仓库 -->
  23. <pluginRepositories>
  24. <pluginRepository>
  25. <!-- 配置与repository类似 -->
  26. </pluginRepository>
  27. </pluginRepositories>
  28. </profile>
  29. </profiles>

激活某个差异文件(activeProfiles/activeProfile*):

  1. <!-- 指定某个profile生效 -->
  2. <activeProfiles>
  3. <activeProfile>对应profile id</activeProfile>
  4. </activeProfiles>

当插件groupId没有显示提供,使用此groupId进行查找(pluginGroups/pluginGroup*):

  1. <pluginGroups>
  2. <!-- 当插件groupId没有显示提供,使用此groupId查找插件 -->
  3. <!-- 官网:(Many) List of groupIds to search for a plugin when that plugin groupId is not explicitly provided. -->
  4. <pluginGroup>org.mortbay.jetty</pluginGroup>
  5. <pluginGroup>org.codehaus.cargo</pluginGroup>
  6. </pluginGroups>

maven学习(一)setting.xml配置文件详解的更多相关文章

  1. 【maven学习】pom.xml文件详解

    环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示, ...

  2. Maven之(六)setting.xml配置文件详解

    setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...

  3. Maven之setting.xml配置文件详解

    setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用户的目录:${user.h ...

  4. 【maven学习】settings.xml文件详解

    环境 apache-maven-3.6.1 jdk 1.8 eclipse 4.7 Settings.xml是设置maven参数的配置文件,包含类似本地仓储位置.修改远程仓储服务器.认证信息等配置.p ...

  5. Maven系列二setting.xml 配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  6. Maven中的pom.xml配置文件详解

    原文:http://blog.csdn.net/u012152619/article/details/51485297 <project xmlns="http://maven.apa ...

  7. 6.Maven之(六)setting.xml配置文件详解

    转自:https://blog.csdn.net/u012152619/article/details/51485152

  8. Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)

    摘录网址: http://blog.csdn.net/u010107350/article/details/51292500 对于MyBatis的学习而言,最好去MyBatis的官方文档:http:/ ...

  9. struts2学习笔记--struts.xml配置文件详解

    这一节主要讲解struts2里面的struts.xml的常用标签及作用: 解决乱码问题 <constant name="struts.i18n.encoding" value ...

随机推荐

  1. 编写高质量代码:Web前端开发修炼之道(一)

    最近老大给我们买来一些技术方面的书籍,其实很少搬着一本书好好的完整的看完过,每每看电子档的,也是打游击式的看看这章,瞅瞅那章,在那5本书中挑了一本比较单薄的<编写高质量代码web前端开发修炼之道 ...

  2. liunx php-fpm

    查看php-fpm 相关信息 查看php-fpm是否开启 :ps -ef|grep php 查看php-fpm的位置:whereis php-fpm 查看php-fpm进程数:ps aux | gre ...

  3. php 其他格式数据与数组互转

    class otherArr { private $char="UTF-8"; private $cvs_fege=","; // cvs 分割符 /**数组 ...

  4. PHP请求远程地址设置超时时间

    file_get_contents 请求超时设置 $timeout = array( 'http'=> array( 'timeout'=>5//设置一个超时时间,单位为秒 ) ); $c ...

  5. POJ - 3735 循环操作

    构造n+1元组,m次方的矩阵代表循环操作 本题尚有质疑之处(清零操作的正确性还有单位矩阵的必要性),题解可能会改正 #include<iostream> #include<algor ...

  6. flex布局在ios8上的兼容性问题

    最近在做项目时,使用到了flex布局.其他ios版本都还好,唯独在ios8上遇到了flex布局没起作用的问题.后来经过研究才发现,safari使用的是webkit内核,在ios8上需要单独加一下兼容才 ...

  7. C# 批量生成随机密码,必须包含数字和字母,并用加密算法加密

    要求:密码必须包含数字和字母 思路:1.列出数字和字符. 组成字符串 :chars 2.利用randrom.Next(int i)返回一个小于所指定最大值的非负随机数. 3. 随机取不小于chars长 ...

  8. VMWare启动虚拟机失败,提示锁定文件失败解决方法

    1.问题描述:未正常关闭虚拟机,重新启动时,VMWare启动虚拟机失败 2.解决方法: ①找到该虚拟系统所在的目录,即弹出框中的目录,在目录中找到Windows XP Professional.vmx ...

  9. 初学C#——选号器

    private void Form1_Load(object sender, EventArgs e) { Random x = new Random(); ); //生成一个大于等于0,小于100之 ...

  10. node之log4js

    log4js的配置文件: "log4js": { "appenders": { "out": { "type": &qu ...