Maven 3 – 仅针对特定的groupid查找自定义存储库

是否有可能告诉maven仅针对某些特定的groupid查找用户定义的存储库?

它似乎首先尝试用户定义的repo用于所有工件,并最终需要花费更长的时间来构建.

[编辑]

例如属于“com.example”组的工件托管在私有存储库中;但其他OSS工件如“org.apache”,“org.codehaus”等则不然. Maven首先尝试在私有仓库中搜索第三方工件,然后在中央搜索.我想仅将私有repo查找过滤为“com.example”

最佳答案 我试图找到一个明确的来源,但答案是否定的.基本上,Maven循环遍历您定义的存储库,直到找到所需的依赖关系,或者没有其他存储库可供检查.

我认为顺序是它首先遍历你的pom.xml中的存储库,然后它首先在settings.xml中找到它们的存储库.

所以诀窍,如果有一个,当你有一个将在某个存储库中找到的单一依赖,并且就是那里,就是使它成为最后一个要检查的存储库之一,或者接近最后一个存储库.

所以你可以做的是在你的pom.xml中添加如下内容:

<repositories>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id> 
      <name>Maven Repository Switchboard</name>
      <url>http://repo1.maven.org/maven2</url>
    </repository>
    <!-- Your custom repository here -->
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>custom</id> 
      <name>Custom Repo</name>
      <url>Custom repo URL</url>
    </repository>
</repositories>

这样中央首先进行检查.它的hacky,但应该有助于速度.

点赞