Maven配置文件(setting.xml)属性解析

五、settings 文件 settings 文件 阅读详情
前置信息
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学习笔记(五)maven全局配置文件settings.xml详解 目录 setting文件简介 settings.xml的作用 settings.xml文件位置 配置的优先级 settings.xml元素详解 顶级元素概览 LocalRepository InteractiveMode UsePluginRegistry Offline PluginGroups Servers Mirrors Proxies Profiles Activation properties Repositories pluginRepositories 阅读详情

相关推荐

一站式详解Maven工程的setting文件内容

setting.xml 文件是 Maven 的主要配置文件,它包含了 Maven 运行时需要的配置信息。当Maven需要从central仓库下载依赖时,它会检查settings.xml文件中的镜像配置,如果找到了匹配的镜像,它会从镜像站点下载依赖,而不是从原始仓库下载。在这两个例子中,元素的值与settings.xml文件中的服务器ID相匹配,所以Maven会使用对应的用户名和密码进行身份验证。元素的值可以是一个仓库ID,也可以是一个仓库ID的列表,用逗号分隔。下面是各个元素的含义下面是各个元素的含义。

weixin_55629492的博客 2186

Maven全局配置文件settings.xml详解

用户目录下的settings.xml文件一般是不存在的,但是Maven允许我们在这里定义我们自己的settings.xml,如果需要在这里定义我们自己的settings.xml的时候就可以把Maven安装目录下面的settings.xml文件拷贝到用户目录的.m2目录下,然后改成自己想要的样子。每个远程仓库都会有一个id,这样我们就可以创建自己的mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。

1万+

Maven 项目依赖仓库配置详解:pom.xml 中的 repositories 与 Maven 配置文件的调用顺序

pom.xml文件中的元素和Maven配置文件中的仓库配置共同构成了Maven项目依赖项解析的机制。了解它们之间的调用顺序有助于更好地理解Maven的行为,并在实际项目中更有效地管理依赖项。在项目中,建议将依赖项的配置尽可能放在pom.xml文件中,以确保项目的构建过程是自包含的,可移植性和可维护性更高。同时,全局配置文件中的仓库配置作为备选方案,在某些情况下也可以发挥重要作用,特别是在需要全局统一配置的场景下。

记录学习编程的日常 1万+

Maven 之 settings.xml 详解

从 settings.xml 的文件名就可以看出,它是用来设置 maven 参数的配置文件。settings.xml 中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。

Seven Coding 5309

Maven 详细配置:Maven settings 配置文件的详细说明

Maven settings 配置文件是 Maven 环境的重要组成部分,它用于定义用户特定的配置信息和全局设置,例如本地仓库路径、远程仓库镜像、代理服务器以及认证信息等。settings 文件分为全局配置文件(settings.xml)和用户配置文件(用户目录下的 .m2/settings.xml),它们分别影响 Maven 的全局行为和当前用户的个性化配置。通过合理配置 settings 文件,开发者可以优化构建性能、提升依赖解析效率,并满足企业开发环境中的特殊需求。本篇内容将深入解析 settings

栗筝i的博客 9226

SOI技术实战:从晶圆结构到芯片性能提升的完整解析

本文深入解析SOI(Silicon on Insulator)技术如何通过独特的三明治晶圆结构提升芯片性能,涵盖从220nm SOI层设计到7nm节点的工艺挑战。详细探讨了埋氧层的绝缘优势、性能提升的物理机制,以及AMD处理器和5G射频中的实战应用,为半导体行业提供关键技术洞见。

wdx0123456的博客 960

Maven-配置文件settings.xml详解

本篇文章主要对maven中setting.xml配置文件进行解释 1.声明规范 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XM...

chuotao6715的博客 224

SFM(structure from motion 从运动恢复结构)和MVS(multi-view stereo 多视图立体视觉)

主要目的:SFM是重建稀疏点云的,MVS重建的是稠密点云。 输入的数据:SFM是没有标定的数据,而MVS输入的是标定的数据。 为什么SFM无法重建出稠密的点云,但是MVS可以? SFM中我们用来做重建的点是由特征匹配提供的!这些匹配点天生不密集!MVS则几乎对照片中的每个像素点都进行匹配,几乎重建每一个像素点的三维坐标,这样得到的点的密集程度可以较接近图像为我们展示出的清晰度。 SFM和MVS关系 SFM给MVS算好了输入视角的位姿,内参,稀疏点云以及它们的共视关系,MVS再利用这些信息以及彩色图

Vpn_zc的博客 1万+

Maven简要概述

pom文件部分内容:主要构成是 基础部分:描述本包的依赖坐标:,type多为pom和jar,pom是文件,没有具体内容,jar包是有类的 父类:parent:用来指定一个父类,只能是pom类型,所有在父类配置的内容,子类都会拥有,可用在这里配置所有子包都需要使用的一些内容,例如构建参数,依赖管理等 属性配置:主要用来标识各个依赖包的版本号,统一管理,依赖包里的版本使用变量替代,例如<sp...

醒不来的梦的博客 144

Unity热更实战:用YooAsset+HybridCLR实现小游戏资源与代码双更新(含避坑清单)

本文详细介绍了Unity小游戏开发中如何通过YooAsset与HybridCLR实现资源与代码双热更新方案。内容涵盖环境配置、架构设计、微信小游戏专项优化、热更代码工程化实践及真机调试技巧,帮助开发者解决审核周期长、紧急修复等痛点,提升更新效率与稳定性。

weixin_42520025的博客 501

国科GK7202V300芯片开发避坑指南:从uboot编译到SDK配置的12个实战问题解决

本文针对国科GK7202V300芯片开发过程中的常见难题,提供从uboot编译、SDK配置到系统部署的实战解决方案。详细解析了开发环境搭建、内核编译、驱动模块加载、根文件系统构建及烧写部署等12个关键环节的避坑指南,帮助开发者高效解决编译错误、配置冲突等典型问题,提升开发效率。

sunny的博客 234

Maven之pom.xml与setting.xml配置文件详解

本文系统介绍了Maven的核心配置与使用,主要包括: Maven常用命令:如编译、测试、打包等,以及跳过测试、指定端口等参数设置; POM文件配置详解:包括基本配置、依赖管理、构建配置、环境设置等模块; settings.xml配置:涵盖本地仓库设置、镜像配置、服务器认证、profile管理等; 实用技巧:如处理依赖冲突、版本升级、本地仓库文件管理、引入本地jar包等。 文章还对比了POM与settings配置的优先级,并详细说明了仓库、镜像、profile等核心概念的使用场景和配置方法,为Maven项目的

晨港飞燕的专栏 2万+

Power BI----各类切片器的使用

首先介绍切片器的最基础的创建和效果演示,紧跟着介绍切片器在多页中的同步和本身与报表的联动,再然后介绍关于切片器属性的设置,使得交互更加美观,最后介绍几种很好看的第三方的切片器样式和自己构建的可折叠的切片器.........

Itsme_MrJJ的博客 2万+

Maven setting.xml 配置详解(全配置) & pom.xml 配置阿里云仓库

maven setting.xml 中文配置详解(全配置) <?xml version="1.0" encoding="UTF-8"?> <!-- | 官方文档: https://maven.apache.org/settings.html | | Maven 提供以下两种 level 的配置: | | 1. User Level. 当前用户独享的配置, 通常在 ${user.home}/.m2/settings.xml 目录下。 | .

路边烧卖 1万+

Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战

本文介绍了ClangStaticAnalyzer静态代码分析工具的使用方法。该工具基于Clang/LLVM,可检测C/C++代码中的内存泄漏、空指针等常见错误。主要内容包括:安装指南(Ubuntu/macOS/Windows)、命令行使用方法、CMake项目集成方案、GitHub Actions自动化分析配置,以及HTML报告生成与查看。文章还提供了官方资源链接,帮助开发者系统掌握从本地调试到持续集成的完整静态分析工作流,提升代码质量保障能力。适用于需要在开发过程中实施静态分析的C/C++项目。

u014358031的博客 2157

微信DAT图片恢复全攻略:从文件路径到批量解密(附最新工具下载)

本文详细介绍了微信DAT图片恢复的全过程,从文件路径定位到批量解密操作,帮助用户高效恢复加密存储的图片。文章涵盖新旧版本微信的存储结构差异,推荐使用专业解密工具进行批量转换,并提供了提升恢复成功率的实用技巧和常见问题解决方案。

weixin_29325007的博客 455

关于maven的两个setting.xml读取顺序解析

maven2 比起maven1 来说,需要配置的文件少多了,主要集中在pom.xml和settings.xml中。 先来说说settings.xml,settings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个 settings.xml,一个位于maven2的安装目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf下面的settings.xml就作为团队共同的配置文件。保证所有的团队成员都拥有相同的配置。当然对于每个成员

weixin_42128568的博客 3425

功能安全实战系列07-英飞凌TC3xx电源监控开发详解

本文对电源监控(PBIST及MONBIST)开发介绍,步骤详细配合开发中的测试情况,图文并茂,方便理解。

initiallizer的博客 1109

maven配置文件setting.xml、pom.xml

maven项目配置文件maven项目主要的配置文件有setting.xml、pom.xml两个、setting.xml配置maven自身的一些设置,全局性的配置,,如maven仓库地址等。pom.xml配置项目中的一些设置,如项目所需的jar包等。下文以setting为例详解文档内容。setting.xml文档详解 setting.xml可能存储路径: Maven安装路径: ${maven.hom

1006346386@qq.com 758

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Maven配置文件settings.xml详解

此文同时在简书发布:https://www.jianshu.com/p/32f348dbf3d4 此文同时在优快云发布:https://blog.csdn.net/nthack5730/article/details/84347849 转载要加原文链接!谢谢支持! 一、配置分级 首先需要了解的是Maven配置文件以及配置方式的分级,才能做到我们自己在日常开发配置中灵活使用。 根据Maven官...

机智猫 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Maven】配置文件解析:setting.xml

纯属个人结合官方介绍的整理,如有不妥之处请评论区指正。

知识输出、记录学习 1788

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Maven的setting.xml的配置文件如何配置

如何配置Maven的本地仓库 如果需要下载本地仓库资源包,可以点这里:Maven本地仓库资源包,点开翻到最下面哦 配置本地仓库,可以让你更好的使用Maven,在第一次使用Maven导入jar包时,Maven会自动从中央仓库中下载jar包到本地仓库中,同时本地仓库中的jar也可以支持你离线工作。 // 设置本地仓库的位置 // <localRepository>你设置本地仓库的...

China_HaoZi的博客 824

maven setting.xml

<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this wor...

qq_31238839的博客 1470

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

题记:对于maven一直是“拿来主义”,但是遇到问题就有点傻逼了,今天就遇到一个maven打包的缺少插件的问题,于是整理一片学习笔记。2020.3.25 一、Setting.xml干什么用的? 不管人是好是坏,都有脑子,它来控制你是打老婆,还是抢劫,还是当护士碎尸主治医师,setting.xml粗略的可看作是maven的脑子,里边配置了maven要从哪里拉去jar包,以及你本地的仓库...

养只狗名叫猫 618

mac自用Maven Setting.xml

<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work...

Leeue李月 6780

Maven 之 settings.xml 文件详解

Maven 之 settings.xml 文件详解

scorpio的博客 3万+
上一篇: Ubuntu 20.04 LTS安装 Redis 5.0.7
下一篇: Spring事务及事务失效的部分场景
香草味小布丁
博客等级 码龄10年 461粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值