在很多情况下,默认的中央仓库无法满足项目的需求,可能项目需求的构件存在于另外一个远程仓库中,如 JBoss Maven 仓库。这时,可以在 POM 中配置该仓库:
1 <project> 2 ... 3 <repositories> 4 <repository> 5 <id>jboss</id> 6 <name>JObss Repository</name> 7 <url>http://repository.jboss.com/maven2/</url> 8 <releases> 9 <enabled>true</enabled> 10 </releases> 11 <snapshots> 12 <enabled>false</enabled> 13 </snapshots> 14 <layout>default</layout> 15 </repository> 16 </repositories> 17 ... 18 </project>
在 <repositories> 元素下,可以使用 <repository> 子元素声明一个或者多个远程仓库。
任何一个仓库的声明必须是唯一的。
需要注意的是,Maven 自带的中央仓库使用的 id 为 central,如果其他的仓库声明也使用该 id,就会覆盖中央仓库的配置。
<releases> 和 <snapshots> 用来控制 Maven 对于发布版构件和快照版构件的下载。这两个元素还包括另外两个子元素:
1 <snapshots> 2 <enabled>false</enabled> 3 <updatePolicy>daily</updatePolicy> 4 <checksumPolicy>ignore</checksumPolicy> 5 </snapshots>
<updatePolicy> 用来配置 Maven 从远程仓库检查更新的频率,默认的值是 daily,表示 Maven 每天检查一次。其他可用的值包括:never--从不检查更新;always--每次构建都检查更新;interval:X--每隔 X 分钟检查一次更新(X 为任意整数)。
<checksumPolicy> 用来配置 Maven 检查校验和文件的策略。当构件被部署到 Maven 仓库中时,会同时部署对应的校验和文件。在下载构件的时候,Maven 会验证校验和文件,如果校验和验证失败,当值为 warn 时,Maven 会在执行构件时输出警告信息,其他可用的值包括:fail--Maven 遇到校验和错误就让构件失败;ignore--使 Maven 完全忽略校验和错误。
<layout> 表示仓库的布局。这里的值指仓库的布局是 Maven2 及 Maven3 的默认布局,而不是 Maven1 的布局。
时间: 2024-10-15 03:12:31