maven学习笔记

全局配置文件settings.xml

该配置文件中比较难以理解的是server,mirror, repository,pluginRepository四个概念的关系。


mirror

mirror用于定义远程repository (例如 (Maven central repository  http://repo.maven.apache.org/maven2/ ) 的镜像服务器。使用mirror有以下原因:

1、某些公司内部网络不能访问到外网,这样可以通过在内网创建一个mirror server作为外部repository的代理服务器,该mirror 可以连接到外网并从外网的repository下载依赖包。

2、节约网络带宽,如果每个开发人员都直接连接到Maven central repository去下载依赖的文件,所需带宽是非常可观的。而mirror在第一次下载后就可以缓存到本地,不用每一次都从外网去下载。

3、提高下载速度,从内网建立的mirror上下载依赖文件,速度要远远快于从外网的Maven central repository 直接下载。


repository和pluginRepository

repository相关的概念有:
local repository:本地仓库。
central repository: 中央仓库。
remote repository: 远程仓库。

本地仓库在本地计算机上,windows上的缺省目录为:C:\Documents and Settings\username\.m2

maven下载依赖库的流程如下:
当使用maven构建项目, Maven将会检查 pom.xml 文件中定义的依赖库. 
maven首先在本地仓库(Maven local repository)中寻找依赖库。
如果在本地库中找不到, 它将尝试从Maven central repository下载, 默认为http://repo1.maven.org/maven2/。 
如果在中央仓库找不到,它将尝试从setting.xml和pom.xml中定义的远程仓库中下载。
如果找到依赖的库,则下载并保存到本地仓库中。
如果从上述路径都找不到,maven则会停止构建并抛出错误。

repository和pluginRepository的区别是:repository保存的是编译依赖的jar包,如log4j;而pluginRepository保存的是maven依赖的插件,如用于单元测试的插件。

repository和pluginRepository这两个角色可以由同一台服务器担任。


server

用于设置repository的认证方式,支持用户名/密码和密钥两种方式




项目配置文件pom.xml

该配置文件中重点是理解build life cycle和plugin的关系。

build life cycle由多个phase组成,每个phase由plugin的多个goal组成。

phase有一些缺省的goal,例如 compile这个phase缺省包含了compiler:compile这个goal


备注:

一、packaging为pom类型:表示该pom的输出即该pom文件本身,无其他制品输出,在以下几种情况下会遇到:

1、该pom是一个父pom文件,用于定义子pom都会用到的一些设置。

2、该pom是一个聚合文件,其输出物在被聚合的pom中定义。

3、该pom未使用packaging参数定义标准输出物,而是使用assembly插件自定义输出物。


二、顶层 pom 中的 dependencies 与 dependencyManagement 中的 dependencies 元素有一个重要的区别:

顶层pom中的dependencies 元素定义了项目的依赖项。
dependencyManagement 中的 dependencies 元素标明依赖项的版本选择。


三、内部(Internal) Repository

在pom文件的repositories中设置的Repository是内部(Internal) repositories. Internal Repository是在局域网中搭建的Repository,使用internal Repository的一个重要原因是要在项目内部发布并共享项目制品。

maven寻找第三方包的顺序为 local Repository , Internal Repository, Central Repository(或 Mirror Repository)。如果配置有多个Internal Repository,则按顺序依次查找? 





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值