在很多情况下,默认的中央仓库无法满足项目需求,可能项目需要的构件存在于另外一个远程仓库中,如JBoss Maven仓库。这时,可以在pom文件中配置该仓库。
<repositories>
<repository>
<id>jobss</id><name>JBoss Repository</name><layout>default</layout><url>http://repository.jboss.com/maven2/</url><releases>
<enabled>true</enabled>
</releases><snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
下面是一些元素的介绍:
在repositories元素下,可以使用repository子元素声明一个或多个远程仓库。该例中声明了一个id为jboss,名称为JBoss Repository的仓库。
任何一个仓库声明的id必须是唯一的,尤其需要注意的是,maven自带的中央仓库使用的id为central,如果其它仓库声明也使用该id,就会覆盖中央仓库的配置。配置中的url值指向了仓库的地址,
一般来说,url地址都是基于http协议,maven用户都可以在浏览器中打开仓库地址浏览构件。
releases和snapshots 元素比较重要,他们是用来控制maven对发部版构件和快照构件的下载。
- releases的enabled的值为true,表示JBoss 仓库的发布版本的下载支持。
- snapshots的enabled的值为false,表示JBoss仓库的快照版本的下载关闭。
layout元素值defualt表示仓库的布局是maven2及maven3的默认布局,而不是maven1的布局。
releases和snapshots来说,除了enabled,它们还包含另外两个子元素updatePolicy和checksumPolicy:
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
元素updatePolicy用来配置Maven从远程仓库检查更新的频率
- 默认是daily——表示Maven每天检查一次
- never——从不检查更新
- always——每次构建都检查更新
- interval:X——每隔X分钟检查一次更新(X为任意整数)
元素checksumPolicy用来配置Maven检查检验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。下载构件的时候,Maven会验证校验和文件,如果校验和验证失败,怎么办?
当checksumPolicy的值为默认的warn时,Maven会在执行构件时输出警告信息,
fail——Maven 遇到的校验和错误就让构建失败
ignore——使Maven完全忽略校验和错误