Maven实战(二)--setting.xml详解
发布日期:2021-06-30 22:40:53 浏览次数:3 分类:技术文章

本文共 5803 字,大约阅读时间需要 19 分钟。

1.文件概览

通过配置文件中的注释,我们可以看到,有两种配置此文件的方法

1.用户级别

${user.home}/.m2/settings.xml
可以通过指令 -s /path/to/user/settings.xml

2.全局级别

${maven.home}/conf/settings.xml.
可以通过指令 -gs /path/to/global/settings.xml

2.localRepository

localRepository用于构建系统的本地仓库的路径。

默认的值是${user.home}/.m2/repository。

Default: ${
user.home}/.m2/repository
/path/to/local/repo

3.interactiveMode

interactiveMode 用于决定maven是否在需要输出的时候提示你,默认true。如果是false,它将使用合理的默认值,或者基于一些设置。

4.offline

决定maven是否在构建的时候进行网络传输。

默认false,表示联网状态,true为取消联网。
在某些情况下设置为true是很有用的,比如jar无法从网上下载等

5.pluginGroups

pluginGroups 插件组

org.mortbay.jetty

这样Maven可以使用简单的命令执行org.morbay.jetty:jetty-maven-plugin:run

mvn jetty run

我们同样可以在pom文件中看到相似的配置,只是在这配置了就起到全局的作用,而不用每个项目中pom配置jetty

6.proxies

此项用于设置http代理

有时候由于安全问题,需要配置http代理,通过代理服务才能正常访问外部仓库下载资源可以ping repo1.maven.org来访问中央仓库
telnet 218.14.227.197 3128 来查看代理地址以及端口是否畅通

optional
true
http
proxyuser
proxypass
proxy.host.net
80
local.net|some.host.com

id:proxy的唯一标识,用来区别proxy元素。

active:表示是否激活代理,如果配置多个,默认是第一个生效
username,password:提供连接代理服务器时的认证。
host,port:主机地址,端口号
nonProxyHosts:用来表示哪些主机名不需要代理,可以用|来分
割多个,此外也支持通配符,
如:*.goole.com表示所有以goole.com结尾的都不需要通过代理

7.servers

这是一个认证配置的列表,根据系统中使用的server-id控制。认证配置在maven连接到远程服务时使用。

deploymentRepo
repouser
repopwd
siteServer
/path/to/private/key
可空

8.mirrors

指定镜像仓库位置用于从远程仓库下载资源

mirrorId
repositoryId
Human Readable Name for this Mirror.
http://my.repository.com/repo/path

id:用于继承和直接查找,唯一

mirrorOf:镜像所包含的仓库的Id
name:唯一标识,用于区分镜像站
url:镜像路径

9.profiles

settings.xml中时意味着该profile是全局的,所以只能配置范围宽泛一点配置信息,比如远程仓库等。而一些比较细致一点的需要定义在项目的pom.xml中。

profile可以让我们定义一系列的配置信息,然后指定其激活条件。
根据每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置。
例子:通过profile定义jdk1.5以上使用一套配置,jdk1.5以下使用另外一套配置;或者通过操作系统来使用不同的配置信息。
settings.xml中的信息有repositories、pluginRepositories和properties。定义在properties的值可以在pom.xml中使用。
下面的例子是从官网翻译的,大家有疑问还可以去官网查看

Activation

test
false
1.5
Windows XP
Windows
x86
5.1.2600
mavenVersion
2.0.3
${basedir}/file2.properties
${basedir}/file1.properties

jdk:检测到对应jdk版本就激活

os:针对不同操作系统
property:当maven检测到property(pom中如${name}这样的)profile将被激活
file:如果存在文件,激活,不存在文件激活
通过以下命令查看哪些profile将生效

mvn help:active-profiles

properites

Maven的属性是值占位符,就像Ant中的一样。如果X是一个属性的话,在POM中可以使用${X}来进行任意地方的访问。他们来自于五种不同的风格,所有都可以从settings.xml文件中访问到。

env.x:“env.”前缀会返回当前的环境变量。如 env.PATH使 path环境变量(windosws中的%PATH%)。

project.x:一个点“.”分割的路径,在POM中就是相关的元素的值。例如:1.0就可以通过 project.version访settings.x.settings.xmlfalse {settings.offline}来访问。
Java系统属性:通过java.lang.System.getProperties()来访问的属性都可以像POM中的属性一样访问,例如: java.homex访 {someVar}

...
${user.home}/our-project
...

上面这个profile如果被激活,那么在pom中${user.install}就可以被访问了。

Repositories

Repositories是远程项目集合maven用来移植到本地仓库用于构建系统。如果来自本地仓库,Maven调用它的插件和依赖关系。不同的远程仓库可能包含不同的项目,当profile被激活,他们就会需找匹配的release或者snapshot构件。

...
codehausSnapshots
Codehaus Snapshots
false
always
warn
true
never
fail
http://snapshots.maven.codehaus.org/maven2
default
...
...

releases,snapshots:这是各种构件的策略,release或者snapshot。这两个集合,POM就可以根据独立仓库任意类型的依赖改变策略。如:一个人可能只激活下载snapshot用来开发。

enable:true或者false,决定仓库是否对于各自的类型激活(release 或者 snapshot)。
updatePolicy: 这个元素决定更新频率。maven将比较本地pom的时间戳(存储在仓库的maven数据文件中)和远程的. 有以下选择: always, daily (默认), interval:X (x是代表分钟的整型) , never.
checksumPolicy:当Maven向仓库部署文件的时候,它也部署了相应的校验和文件。可选的为:ignore,fail,warn,或者不正确的校验和。
layout:在上面描述仓库的时候,提到他们有统一的布局。Maven 2有它仓库默认布局。然而,Maven 1.x有不同布局。使用这个元素来表明它是default还是legacy。

10.activeProfiles

alwaysActiveProfile
anotherAlwaysActiveProfile

每个activeProfile元素对应一个profile id的值,任何profile id被定义到activeProfile的profile将被激活。

参考:

—————————————————————————————————————————————————–

java 架构师全套教程,共760G, 让你从零到架构师,每月轻松拿3万

下载地址:

https://item.taobao.com/item.htm?spm=686.1000925.0.0.4a155084hc8wek&id=555888526201

01.高级架构师四十二个阶段高

02.Java高级系统培训架构课程148课时
03.Java高级互联网架构师课程
04.Java互联网架构Netty、Nio、Mina等-视频教程
05.Java高级架构设计2016整理-视频教程
06.架构师基础、高级片
07.Java架构师必修linux运维系列课程
08.Java高级系统培训架构课程116课时
(送:hadoop系列教程,java设计模式与数据结构, Spring Cloud微服务, SpringBoot入门)

01内容详情:

这里写图片描述
—————————————————————————————————————————————————–

转载地址:https://lovoo.blog.csdn.net/article/details/77883763 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Maven实战(四) eclipse构建maven常见错误
下一篇:Maven实战(一) eclipse构建maven的web项目

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月06日 12时52分48秒