- 私服 架设在局域网内的仓库服务,代理广域网上的远程仓库,供局域网上的Maven用户使用。
- 用户从私服请求构件,而四附上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven下载请求提供服务。
架设私服的好处
- 节省自己的外网宽带
- 加速Maven 构建
- 部署第三方构件,如组织内部的私有构件
- 提高稳定性,增强控制。
- 降低中央仓库的负荷。
配置JBoss Maven仓库示例
<project>
...
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
...
</project>
layout元素值default表示仓库的布局是Maven2及Maven3的默认布局,而不是Maven1的布局
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
- updatePolicy 配置Maven从远程仓库更新的频率,默认值是daily。 其他 never——从不检查,always——每次构件都检查更新,interval:X——每隔X分钟检查一次更新。
- checksumPolicy用来配置maven检查检验和文件的策略。默认为warn,执行构建时输出警告信息。fail——遇到校验和错误就让构建失败。ignore——使Maven完全忽略校验和错误。
在setting.xml中配置用户名和密码
远程发布地址
配置POM中的远程仓库标签<distributionManagement>
其中有<repository>和<snapshotRepository>,前者时发布版本构件的仓库,后者时快照版本的仓库
三个元素id、name、url
镜像
- mirror 在setting.xml中配置Maven仓库的镜像。
- <mirrorOf> * </mirrorOf> 匹配所有远程仓库
- <mirrorOf> external:* </mirrorOf> 匹配所有远程擦国库,使用localhost的除外,使用file://协议的除外。即,匹配所有不在本机上的远程仓库
- <mirrorOf> repo1,repo2 </mirrorOf> 匹配仓库repo1和repo2
- <mirrorOf> *,!repo1 </mirrorOf> 匹配所有远程仓库,repo1除外