在Artifactory中使下载的Maven依赖可在JFrog Artifactory服务器上使用

93次阅读
没有评论

问题描述

在新安装的Artifactory实例中创建了以下仓库结构,并使用该Artifactory实例来存储Maven构件。大部分项目都是Java项目,使用Maven作为构建工具。由于这是一个新安装的实例,他们的.m2仓库缓存是空的。当他们进行初始的mvn compile时,它已经从Maven Central仓库下载了所有依赖,并将这些依赖放置在.m2缓存中,但并未放入Artifactory实例中。

根据他们的理解,他们认为如果依赖在Artifactory服务器上不可用,那么它会从公共仓库下载,并在Artifactory服务器和本地.m2缓存中保留一份副本。事实是否如此?当从公共仓库下载依赖时,我们也希望将其在Artifactory服务器上可用,以便在新机器上安装Maven时,它应该从我们的Artifactory服务器获取该依赖。这是否可能?

以下是我们仓库的列表:
– 本地仓库: wellowsLocal
– 远程仓库: wellows-remote
– 虚拟仓库: wellows-virtual

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案

为了让Artifactory缓存您的依赖项,您需要从Artifactory检索它们。一旦使用包含Maven Central或JCenter远程仓库的虚拟仓库,Artifactory将从Maven Central下载依赖,并将其缓存在未来使用中。

以下是为了将Artifactory填充为您的依赖项所需做的步骤:

  1. 确保您的虚拟仓库包含Maven Central或JCenter远程仓库。
  2. 配置您的Maven以与Artifactory一起使用(可以在Artifactory UI中找到“Set Me Up”按钮来获取配置信息)。
  3. 删除~/.m2/repositories缓存目录。
  4. 再次运行构建命令。

通过这些步骤,您可以确保依赖项被下载到Artifactory并被缓存,从而使其可供将来使用。这样,当您在新机器上安装Maven并配置Artifactory后,它将从您的Artifactory服务器获取依赖项,而不是直接从公共仓库下载。

结论

通过配置虚拟仓库和设置Maven与Artifactory的集成,您可以确保下载的Maven依赖项被缓存在Artifactory服务器中,以供将来的构建使用。这不仅有助于加快构建过程,还可以在新机器上重新安装Maven时节省时间和带宽资源。

正文完