这两个设置在maven中是否相同?

我想限制maven只使用私有/非公共maven存储库,这两个设置有同样的效果吗?

1.在settings.xml中设置镜像

  my-internal-site * our maven repository http://myserver/repository   

2.在pom.xml中设置存储库

   my-internal-site our maven repository http://myserver/repo   

同样的要求是,即使内部存储库中没有某些依赖项,maven 也永远不会访问公共存储库。 谢谢

不,他们没有相同的效果。

第二个设置添加一个新的存储库作为中心的“补充”,但不会阻止Maven自行检查中心。

第一个通过让Maven镜像所有存储库请求(通过将mirrorOf设置为* )来强制Maven使用单个存储库。 这是使用单个存储库的方法 。

因此,您正在寻找的是第一个设置,需要在settings.xml定义。

现在,在每台机器的~/.m2/settings.xml文件中添加您的公司存储库可能有点痛苦,我喜欢在公司环境中做的是分发和安装包含镜像的Maven的“自定义”版本在conf/settings.xml预定义。 这样,人们只需要安装“公司”版本,他们就可以开始了。

不,他们意味着不同的事情:

在第一个示例中,您说给定的存储库是所有存储库的镜像, 包括官方存储库。

在第二个示例中,您只需添加一个新存储库。 如果在本地存储库中找不到依赖项,Maven将在搜索官方存储库查看此存储库。

因此,要强制使用内部存储库,必须在settings.xml文件中配置mirror

这在Maven的官方文档中有解释。