前置信息

Maven 版本:apache-maven-3.5.2
Nexus 信息:nexus2、nexus3
镜像仓库:如果仓库 X 可以提供仓库 Y 存储的所有的内容,那么仓库 X 就可以说是 仓库 Y 的镜像(也就是说能从仓库 Y 获取的内容,从仓库 X 也能获取)

属性解析

setting
<setting>setting 文件的根元素</setting>
localRepository
<localRepository>本地仓库</localRepository><!-- 该属性一般需要自己设置不设置的话,本地仓库默认地址为-->
<localRepository>${user.home}/.m2/repository</localRepository>
interactiveMode
<interactiveMode>Maven 是否与用户交互</interactiveMode><!-- 该属性一般按照默认配置(设置为 true )设置为 false 时,Maven 会基于一些其他设置参数,配置一个默认值-->
<interactiveMode>true</interactiveMode>
offline
<offline>离线模式</offline><!-- 该属性一般按照默认设置(设置为 false)该属性值 Maven 构建时是否连接网络,会产生 jar 包下载、部署及其他错误影响-->
<offline>false</offline>
pluginGroups
<pluginGroups>插件组</pluginGroups>
proxies
<!-- | 代理主机信息| 当公司网络与公网隔离,需要代理主机才能访问公网时,需要设置该属性
--><proxies><proxy><!-- (自定义id名称即可) --><id>optional</id><!-- (是否激活该代理) --><active>true</active><!-- (使用的代理协议) --><protocol>http</protocol><!-- (用户名) -->  <username>proxyuser</username><!-- (密码) --><password>proxypass</password><!-- (代理服务器地址) --><host>proxy.host.net</host><!-- (代理服务器端口) --><port>80</port><!-- (指定那些主机地址不需要代理)| 支持 “ | ” 分隔多个主机地址 | 支持 “ * ” 适配符 例如 *.baidu.com 表示所有以 baidu.com 结尾的主机地址,都不会走代理--><nonProxyHosts>local.net|some.host.com</nonProxyHosts></proxy>
</proxies><!-- | 支持配置多个 proxy ,默认是第一个 proxy 配置生效
-->
servers
<!-- | 仓库/镜像仓库的认证信息
--><servers><server>   <!-- (自定义id名称) | id 属性,需要与下面讲述的 mirror 、profile 属性中的 id 保持一致--><id>deploymentRepo</id><!-- (用户名) --><username>repouser</username><!-- (密码) --><password>repopwd</password></server>
</servers>
mirrors
<!--| 镜像仓库
--><mirrors><mirror><!-- (自定义id名称) --><id>mirrorId</id><!-- (镜像仓库匹配范围) | “ * ”表示匹配所有远程仓库,任何对远程仓库的请求,都会转到该镜像地址下| “ external:* ”表示匹配所有远程仓库(localhost、file://协议、这两种除外)即匹配不在本机上的所有远程仓库| “ repo1,repo2 ”表示匹配 repo1、repo2 两个远程仓库,可以使用逗号分隔多个远程仓库| “ *,!repo1”表示匹配所有远程仓库,但是 repo1 远程仓库除外          --><mirrorOf>repositoryId</mirrorOf><!-- (镜像名称) --><name>Human Readable Name for this Mirror.</name><!-- (镜像地址) --><url>http://my.repository.com/repo/path</url></mirror>
</mirrors><!-- | 镜像仓库的常用方式:结合私服使用| 说明:因为私服,可以代理任何外部公共仓库,那么,可以使用一个私服地址,代理所有需要的外部公共仓库,简化 Maven 的配置。这种情况下,私服可以说所有需要的外部公共仓库的镜像; | 如果镜像需要认证信息,同样是在 servers 中增加 server 信息| 镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或停止服务的时候,Maven 将无法方位被镜像仓库,因为无法下载内容
-->
profiles
<!-- | 配置文件列表| 不同环境的构建大概率是不同的,比如数据库配置、使用特殊版本的依赖、配置插件使用本地文件,为了让构建能在不同环境移植,Maven 引入 Profile
--><profiles><profile><!-- (自定义id名称) --><id>nexus</id> <repositories> <repository> <id>nexus</id><!-- (自定义资源名称) --><name>Nexus</name><!-- 仓库地址 --><url>http://100.4.252.5:18080/nexus/content/groups/public</url><releases><!-- 是否允许该仓库为构件提供 发布版 / 快照版 下载功能 --><enabled>true</enabled><!-- 每次执行构建命令时, Maven 会比较本地 POM 和远程 POM 的时间戳, 该元素指定比较的频率 | always(每次构建都检查)| daily(默认, 距上次构建检查时间超过一天)| interval: x(距上次构建检查超过 x 分钟)| never(从不)--><updatePolicy>daily</updatePolicy><!-- 当 Maven 验证构件的校验文件失败时该怎么做: ignore(忽略), fail(失败), 或者warn(警告)--><checksumPolicy>warn</checksumPolicy>  </releases> <snapshots><!-- 参照 releases --><enabled>true</enabled>  <updatePolicy>daily</updatePolicy><checksumPolicy>warn</checksumPolicy>  </snapshots></repository></repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus</name><!-- 仓库地址 --><url>http://100.4.252.5:18080/nexus/content/groups/public</url><!-- (发布版本的插件) --><releases><enabled>true</enabled></releases> <!--(快照版本的插件) --><snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile>
</profiles><!-- | profile 激活| 通过命令行激活:用户使用 mvn 命令行参数 -P 加上 profile 的id 来激活 profile,多个通过逗号分隔| setting.xml 配置文件显式激活:使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活(下面会讲)| 系统属性激活
-->
profile 种类

pom.xml: pom 文件的 profile 只对当前项目生效

用户setting.xml: 用户目录下/.m2/setting.xml 文件中的 profile 只对本机该用户所有的 Maven 项目生效

全局setting.xml: Maven 安装目录下的 setting.xml 文件中的 profile 对本机所有的 Maven 项目生效

profiles.xml (Maven 2) 还可以在项目根目录下使用一个额外的 profiles.xml 声明,该特性在 Maven 3 中移除,建议将 profiles 添加到 setting.xml 中

profile激活

通过命令行激活:用户使用 mvn 命令行参数 -P 加上 profile 的id 来激活 profile,多个通过逗号分隔

mvn clean -Pdev-x,dev-y

setting.xml 配置文件显式激活:使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活

<activeProfiles> <activeProfile>nexus</activeProfile>  </activeProfiles>

系统属性激活:用户可以配置系统属性 test 存在时,自动激活 profile ,如下面第一个示例;用户可以配置系统属性存在,且系统属性值时,自动激活profile,如下面第二个示例

<!-- 第一个示例 -->
<profiles><profile><activeprofile><property><name>test</name></property></activeprofile></profile>
</profiles><!-- 第二个示例 -->
<profiles><profile><activeprofile><property><name>test</name><value>x</value></property></activeprofile></profile>
</profiles><!-- 一定要记得,也是可以通过命令行声明系统属性激活 -->
mvn clean -Ptest=x

操作系统环境激活:profile 可以根据不同操作系统环境自动激活,如果构建在不同操作系统环境且有差异,可以把这些差异写进 profile

<profiles><profile><activeprofile><os><name>Window XP</name><family>Window</value><arch>X86</arch></os></activeprofile></profile>
</profiles>

文件是否存在激活:Maven 能够根据项目中某个文件是否存在来决定是否激活 profile

<profiles><profile><activeprofile><file><missing>y.properties</name><exists>x.properties</value></file></activeprofile></profile>
</profiles>
activeprofile
<!-- 使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活 --><activeProfiles><activeProfile>central(id 需要与 profile 中的 id 保持一致)</activeProfile>
</activeProfiles>

Maven配置文件(setting.xml)属性解析相关推荐

  1. MAVEN配置文件Setting.xml学习笔记

    题记:对于maven一直是"拿来主义",但是遇到问题就有点傻逼了,今天就遇到一个maven打包的缺少插件的问题,于是整理一片学习笔记.2020.3.25 一.Setting.xml ...

  2. Maven学习—setting.xml pom.xml 配置文件详解

    一.Maven最重要的两个配置文件 Maven 仓库及相关设置配置文件 setting.xml配置文件可以设置本地仓库目录.远程仓库地址.JDK版本等等 Maven构建Java工程的pom配置文件 p ...

  3. Android常见XML属性解析

    常见XML属性解析 属性 描述 android:id android:id的设置,通常有三种方式,详见下文 android:layout_width 控件宽度 android:layout_heigh ...

  4. maven 3.8.1 安装及配置文件setting.xml

    1.官网下载maven maven3.8.1链接 2.解压并修改conf文件夹下的setting.xml 3.配置环境变量 3.1此电脑->属性->高级系统设置->环境变量-> ...

  5. Maven的setting.xml配置文件详解(中文)

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

  6. idea中打开maven的setting.xml

    记录日常开发中更改maven的setting配置文件 在Google了半天没结果时,果断问了同事.下边附上方法 1.确定配置好maven 2.右击pom.xml–找到maven–选择Open'sett ...

  7. maven的setting.xml文件配置信息【仅仅更改了一处】

    仅仅更改了一处: 目录结构: settings.xml: <?xml version="1.0" encoding="UTF-8"?><!-- ...

  8. 如何在maven的setting.xml中指定jdk版本(详细步骤)

    打开maven所在的位置,打开conf下的setting.xml,如我的:D:\Path\apache-maven-3.5.4\conf\setting.xml 进行编辑,编辑如下: <prof ...

  9. maven的setting.xml文件配置

    1.找到conf–>setting.xml,右击打开 2.配置本地仓库路径(默认路径为C盘下,尽量不放C盘,之后用到的依赖包非常多,所以修改路径) (1)查找"localReposit ...

最新文章

  1. PHP处理Oracle的CLOB
  2. 观察者模式(Observer)
  3. Ubuntu16.04LTS安装集成开发工具IDE: CodeBlocks 和Eclipse-cdt
  4. 把「光」存储1小时,中科大新研究破世界纪录,保真度高达96.4% | Nature子刊
  5. 根据一级分类查询所有子级分类
  6. 机器学习的最佳学习路线,就在这里!
  7. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第18篇]画一个/描述ECB,CBC,CTR模式的操作
  8. 企业实战02:Oracle数据库的安装和卸载
  9. matlab 当已知两个矩阵满足分别一定条件时_程序继续执行,MATLAB程序设计基础
  10. PHP header发送各种类型文件下载
  11. JQuery EasyUI入门
  12. 刘作虎曝光一加7真机视频 最流畅的手机来了!
  13. gitbook安装与使用
  14. 基于SSM校园一卡通管理系统
  15. 【渝粤教育】电大中专学前教育学作业 题库
  16. English trip M1 - AC11 I Dreamed a Dream? 我做了一个梦 Teacher:Lamb
  17. linux软路由关闭超线程,废掉硬路由,组建软路由的详细教程(图)
  18. LeetCode07整数反转(JAVA)
  19. Chapter 8 中医证型关联规则挖掘
  20. 手机客户端设置同济邮箱的方法

热门文章

  1. Vue锚链接(两种方法) scrollIntoView
  2. 多元函数可微性知识点总结
  3. 【超详细】弱电工程综合布线系统培训资料
  4. 第八章 Hbase专题之架构设计详述(图解)
  5. ping 命令打印日志
  6. LearnLua - 学习笔记
  7. keyshot 的纹理贴图之 移动纹理 按钮灰色
  8. 太阳能光伏板路灯原理与结构分析
  9. 经验总结 | R语言整理数据常用小技巧
  10. 单片机做的音乐盒c语言程序,16*16滚动点阵屏+音乐盒C语言源程序