要闻速递:Maven中settings.xml有什么用?以及其中的各种标签的作用
settings.xml有什么用?
如果在Eclipse中使用过Maven插件,想必会有这个经验:配置settings.xml文件的路径。
(资料图片仅供参考)
settings.xml文件是干什么的,为什么要配置它呢?从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。Settings.xml中包含类似本地仓储位置、修改远程仓储服务器(如阿里云的远程仓库)、认证信息等配置(比如对于某个远程的仓库需要用户名和密码的话也需要在这个setting.xml中进行配置)。
在setting.xml中配置阿里云的远程仓库:
alimaven * aliyun maven http://maven.aliyun.com/nexus/content/repositories/central/ repo1 central Human Readable Name for this Mirror. http://repo1.maven.org/maven2/ repo2 central Human Readable Name for this Mirror. http://repo2.maven.org/maven2/
settings.xml文件位置
settings.xml文件一般存在于两个位置:全局配置: ${M2_HOME}/conf/settings.xml用户配置: 用户配置优先于全局配置。user.home/.m2/settings.xmlnote:用户配置优先于全局配置。{user.home} 和和所有其他系统属性只能在3.0+版本上使用。请注意windows和Linux使用变量的区别。
配置优先级
eclipse对于Maven工程中需要注意的是:局部配置优先于全局配置。配置优先级从高到低:pom.xml> user settings > global settings如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。
settings.xml元素详解
顶级元素概览
下面列举了settings.xml
中的顶级元素
LocalRepository
作用:该值表示构建系统本地仓库的路径。其默认值:~/.m2/repository。
${user.home}/.m2/repository
InteractiveMode
作用:表示maven是否需要和用户交互以获得输入。如果maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为true。
true
UsePluginRegistry
作用:maven是否需要使用plugin-registry.xml文件来管理插件版本。如果需要让maven使用文件~/.m2/plugin-registry.xml来管理插件版本,则设为true。默认为false。
false
Offline
作用:表示maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行,则为true,默认为false。当由于网络设置原因或者安全因素,构建服务器不能连接远程仓库的时候,该配置就十分有用。
false
PluginGroups
作用:当插件的组织id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。该元素包含一个pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。当我们使用某个插件,并且没有在命令行为其提供组织Id(groupId)的时候,Maven就会使用该列表。默认情况下该列表包含了org.apache.maven.plugins
和org.codehaus.mojo
。
... org.codehaus.mojo ...
Servers
作用:一般,仓库的下载和部署是在pom.xml文件中的repositories
和distributionManagement
元素中定义的。然而,一般类似用户名、密码(有些仓库访问是需要安全认证的)等信息不应该在pom.xml文件中配置,这些信息可以配置在settings.xml
中。
... server001 my_login my_password ${usr.home}/.ssh/id_dsa some_passphrase 664 775 ...
Mirrors
作用:为仓库列表配置的下载镜像列表。
... planetmirror.com PlanetMirror Australia http://downloads.planetmirror.com/pub/maven2 central ...
Proxies
作用:用来配置不同的代理。
... myproxy true http proxy.somewhere.com 8080 proxyuser somepassword *.google.com|ibiblio.org ...
Profiles
作用:根据环境参数来调整构建配置的列表。settings.xml
中的profile
元素是pom.xml
中profile
元素的裁剪版本。它包含了id
、activation
、repositories
、pluginRepositories
和 properties
元素。这里的profile元素只包含这五个子元素是因为这里只关心构建系统这个整体(这正是settings.xml文件的角色定位),而非单独的项目对象模型设置。如果一个settings.xml
中的profile
被激活,它的值会覆盖任何其它定义在pom.xml
中带有相同id的profile
。
... test ...
Activation
作用:自动触发profile
的条件逻辑。如pom.xml
中的profile
一样,profile
的作用在于它能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation
元素指定。activation
元素并不是激活profile
的唯一方式。settings.xml
文件中的activeProfile
元素可以包含profile
的id
。profile
也可以通过在命令行,使用-P标记和逗号分隔的列表来显式的激活(如,-P test)。
false 1.5 Windows XP Windows x86 5.1.2600 mavenVersion 2.0.3 ${basedir}/file2.properties ${basedir}/file1.properties
注:在maven工程的pom.xml所在目录下执行mvn help:active-profiles
命令可以查看中央仓储的profile是否在工程中生效。
properties
作用:对应profile
的扩展属性列表。maven属性和ant中的属性一样,可以用来存放一些值。这些值可以在pom.xml
中的任何地方使用标记${X}
来使用,这里X是指属性的名称。属性有五种不同的形式,并且都能在settings.xml文件中访问。
${user.home}/our-project
注:如果在setting.xml中的profile被激活,则可以在pom.xml
中使用${user.install}。
Repositories
作用:远程仓库列表,它是maven用来填充构建系统本地仓库所使用的一组远程仓库。
codehausSnapshots Codehaus Snapshots false always warn http://snapshots.maven.codehaus.org/maven2 default
pluginRepositories
作用:发现插件的远程仓库列表。和repository
类似,只是repository
是管理jar包依赖的仓库,pluginRepositories
则是管理插件的仓库。maven插件是一种特殊类型的构件。由于这个原因,插件仓库独立于其它仓库。pluginRepositories
元素的结构和repositories
元素的结构类似。每个pluginRepository
元素指定一个Maven可以用来寻找新插件的远程地址。
ActiveProfiles
作用:手动激活profiles的列表,按照profile
被应用的顺序定义activeProfile
。该元素包含了一组activeProfile
元素,每个activeProfile
都含有一个profile id。任何在activeProfile
中定义的profile id,不论环境设置如何,其对应的 profile
都会被激活。如果没有匹配的profile
,则什么都不会发生。例如,env-test是一个activeProfile,则在pom.xml(或者profile.xml)中对应id的profile会被激活。如果运行过程中找不到这样一个profile,Maven则会像往常一样运行。
... env-test ...
精彩推送
全球最新:宋都股份回复问询函:出现大额亏损主要受行业影响及项目去化不及预期
观点网讯:2月17日,宋都基业投资股份有限公司披露回复上海证券交易所问询函的公告。据悉,宋都股份于20...
新闻快讯
X 关闭
X 关闭
新闻快讯
- 要闻速递:Maven中settings.xml有什么用?以及其中的各种标签的作用
- 本周两公司上会,天极科技现金流恶化,天承科技高增长承压
- 止涨的硅料和深陷“旋涡”的奥联电子
- 小羚羊电动车官网_小羚羊电动车
- 天天亮点!一琴一鹤_一琴一鹤所形容的是
- 百事通!记者:对阵狼队拉什福德因迟到被撤出首发,从此他成为英超最佳
- 3d漫画秘蜜情人2_3d漫画秘蜜情人2
- 期钢下跌 钢价或震荡偏弱_全球要闻
- 视讯!连增四个交易日!融资客一周净买入近百亿元,都买了啥
- 世界消息!万邦达(300055)2月27日主力资金净卖出146.37万元
- 三棵树小区|天天时快讯
- 什么是战略管理的三部曲_什么是战略管理
- 《军人本色》歌曲_军人本色歌词 时快讯
- 氟化工板块强势,三美股份大涨8%
- 新生儿缺氧缺血_关于新生儿缺氧缺血简介-环球新动态
- 双色球软件那个好用_双色球软件哪个好
- 全球报道:异人
- 简讯:巴基斯坦破产了,中国为何不救?中国:我们想救却救不了
- 每日聚焦:肘子需要煮多久 肘子煮多长时间才熟呢
- 湖北监利 天天时快讯
- 焦点报道:小乌鸦爱妈妈歌词_小乌鸦爱妈妈表达了什么感情
- 萨格拉斯之血副本掉落几率_萨格拉斯之血怎么获得_天天即时
- 长沙汽车东站
- 全球微资讯!惊闻北京幼儿园“一孩难求”,不生二胎的你愿意背锅吗?
- 世界焦点!谢之光
- 日本北海道根室地区发生6.1级地震
- 西甲-吉梅内斯破门阿尔瓦罗扳平科雷亚染红 皇马1-1绝平十人马竞
- 中国弘泥 播资讯
- “湘”当自觉自信自强丨桃花源景区:文旅融合描绘高质量发展新画卷
- 【肖战水仙】《急冲冲与慢吞吞》疾冲×张小凡
- 中国高等院校美术·设计教研大系-光的构成课题研究 最新消息
- 网上选车牌号流程注意攻略_网上选车牌号流程
- 张绍华-天天快报
- 北京健康证多久办一次?
- 每日看点!6217856开头是什么银行
- 燕青拳
- 风月手谈围棋下载_风月手谈围棋官网
- 酆都城十八层地狱_丰都城
- 全球信息:2023年药械化安全如何提高?湘潭以“四个最严”打好监管“组合拳”
- 九年制义务教育四年级语文第一学期对应强化训练 环球实时
- 世界热头条丨广东省高等就业指导中心电话_广东省高校毕业生就业指导中心咨询电话是多少
- 02月24日涨停板连板:坤泰股份7连板 晋拓股份4板 观点
- 于荣_全球微资讯
- 全球连线|中国第21批赴黎维和建筑工兵分队开展人道主义救援活动 天天快讯
- 【世界聚看点】Valve公布2023年全年Steam销售时间表
- 【世界报资讯】甘肃康乐抽水蓄能电站预可行性研究报告审查通过
- 全球简讯:会议纪要显示美联储预计继续小幅加息
- excel一个单元格斜线怎么分两行字_excel一个单元格斜线
- 视讯!西餐牛排摆盘花样图片欣赏_西餐牛排摆盘花样图片
- 当前播报:中国铁物:与中铁集装箱运输有限责任公司签订《战略合作协议》