Maven - Artifactory 中的多个私有存储库

Maven - multiple private repositories in Artifactory

我已经有一个工作项目,它从 Artifactory 中的私有存储库下载 .jar 包,我正在尝试添加另一个存储库,maven 将从中加载常规的 maven 依赖项。

我已将存储库标签添加到我的 parent 的 POM

    <repository>
      <id>MyId-1</id>
      <url>https://artifactory-url/artifactory/Myfolder-1/</url>
      <layout>default</layout>
    </repository>

到settings.xml

    <server>
      <id>MyId-1</id>
      <username>{username}</username>
      <password>{password}</password>
    </server>

但它仍然没有找到我预期的依赖项。

也在我的 settings.xml 中定义了 Artifactory 的代理镜像:

  <mirrors>
    <mirror>
      <id>MyId-2</id>
      <mirrorOf>central</mirrorOf>
      <name>MyName-2</name>
      <url>https://artifactory-url/artifactory/Myfolder-2/</url>
    </mirror>
  </mirrors>

当我将镜像的 URL 更改为我预期的 URL:

https://artifactory-url/artifactory/Myfolder-1/

Maven 成功下载了我预期的依赖项,但没有下载所有其他 jar。

我也试过向我的 settings.xml 添加另一个镜像,我的镜像标签如下所示:

  <mirrors>
    <mirror>
      <id>MyId-2</id>
      <mirrorOf>central</mirrorOf>
      <name>MyName-2</name>
      <url>https://artifactory-url/artifactory/Myfolder-2/</url>
    </mirror>
    <mirror>
      <id>MyId-1</id>
      <mirrorOf>*</mirrorOf>
      <name>MyName-1</name>
      <url>https://artifactory-url/artifactory/Myfolder-1/</url>
    </mirror>
  </mirrors>

但是 maven 忽略了它,我在尝试 mvn install 时遇到错误:

Could not find artifact {my-artifact}:pom:{version} in artifactory (https://artifactory-url/artifactory/Myfolder-2/)
The POM for {my-artifact}:jar:{version} is missing, no dependency information available

使用多个存储库的最佳做法是在 Artifactory 中配置一个虚拟存储库。然后,您可以将所有远程和本地存储库聚合到这个虚拟存储库中,并将您的 Maven "settings.xml" 指向这个虚拟存储库。您的所有依赖项和 jar 都可以从那里下载。有关虚拟存储库的更多信息,请访问 JFrog 的维基页面 here.

好像镜像标签把一切都搞砸了。 解决了这个问题: 删除了镜像中心,并将两个带有 jar 的文件夹添加到活动配置文件中, 所以现在我在 settings.xml 中的存储库标签是:

    <repository>
        <id>MyId-1</id>
        <url>https://artifactory-url/artifactory/Myfolder-1/</url>
    </repository>
    <repository>
          <id>central</id>
          <url> https://artifactory-url/artifactory/Myfolder-2/ </url>
    <repository>