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>
我已经有一个工作项目,它从 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>