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

ant*_*ant 5 java eclipse maven-2

我想限制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>
Run Code Online (Sandbox Code Playgroud)

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

<repositories>
    <repository>
      <id>my-internal-site</id>
      <name>our maven repository</name>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
Run Code Online (Sandbox Code Playgroud)

同样需要的是,maven 永远不会出现在公共存储库中,即使内部存储库中没有某些依赖项.谢谢

Pas*_*ent 3

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

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

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

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

现在,在每台机器的文件中添加企业存储库~/.m2/settings.xml可能有点痛苦,我喜欢在企业环境中做的是分发和安装包含conf/settings.xml. 这样,人们只需安装“企业”版本即可开始使用。