我想限制maven只使用私有/非公共maven存储库,这两个设置是否具有相同的效果?
1.在settings.xml中设置镜像
<mirrors>
<mirror>
<id>my-internal-site</id>
<mirrorOf>*</mirrorOf>
<name>our maven repository</name>
<url>http://myserver/repository</url>
</mirror>
</mirrors>
2.在pom.xml中设置存储库
<repositories>
<repository>
<id>my-internal-site</id>
<name>our maven repository</name>
<url>http://myserver/repo</url>
</repository>
</repositories>
同样要求是maven 永远不会转到公共存储库,即使内部存储库中没有某些依赖项。谢谢
答案 0 :(得分:3)
不,他们没有相同的效果。
第二个设置添加一个新的存储库作为中心的“补充”,但不会阻止Maven自行检查中心。
第一个通过让Maven镜像所有存储库请求(通过将mirrorOf
设置为*
)来强制Maven使用单个存储库。这是使用a single repository的方法。
您正在寻找的是第一个设置,需要在settings.xml
中定义。
现在,在每台计算机的~/.m2/settings.xml
文件中添加您的公司存储库可能会有点痛苦,我喜欢在公司环境中做的是分发和安装包含镜像的Maven的“自定义”版本在conf/settings.xml
中预定义。这样,人们只需要安装“公司”版本,他们就可以开始了。
答案 1 :(得分:0)
不,他们的意思不同:
在第一个示例中,您说给定的存储库是所有存储库的镜像,包括官方存储库。
在第二个示例中,您只需添加一个新的存储库。如果在本地存储库中找不到依赖项,Maven将在在官方存储库中搜索后查看此存储库。
因此,要强制使用内部存储库,您必须在mirror
文件中配置settings.xml
。