【问题标题】:Locally downloading arifacts from Maven for Artifactory从 Maven 本地下载工件 for Artifactory
【发布时间】:2015-10-28 09:41:35
【问题描述】:

我目前正在研究如何为我的公司有效地使用 Gradle 和 Artifactory。我能够构建一些相互依赖的小型测试程序和 junit 进行测试。
我们想要实现的一件事是让我们在本地服务器上使用第三方库和 Artifactory(所以不是来自 Maven 的镜像)。这就是出现一些问题的地方:没有 hamcrest,junit 就无法运行。
所以我的问题是:

是否有一种简单的方法可以一次性从 Maven 下载工件及其依赖项,以避免在构建时浪费时间和挫败感?

【问题讨论】:

    标签: java maven gradle dependencies artifactory


    【解决方案1】:

    答案是:你不需要。 Artifactory 有远程仓库的概念,它代理 maven central 和 jcenter 等仓库,为你提供透明的依赖(和传递依赖)解析。

    这是一个项目的a simple example,该项目具有与 Artifactory 一起使用的 Gradle 构建(使用 Artifactory Gradle 插件)。随意复制粘贴。

    【讨论】:

    • 是的,我知道,但正如我所提到的,其中一项要求是在本地拥有一切,所以没有镜像/代理。
    • 代理某些东西时,它会存储在本地。或者你的意思是你根本没有互联网连接?如果是这样,从问题中不是很清楚。
    • 不使用代理的关键在于您可以精确控制依赖项、使用的内容以及使用的版本。例如,这意味着所有开发人员都使用相同版本的 junit。另一个例子是,如果您使用本地存储库中最新版本的库,您将使用公司中每个人都使用的库,但相同的命令可能会给您提供不同的下载(使用代理时)说 John who一个月前开始使用这个库。
    • 我想知道是否有一个 gradle 方法来解决这个问题,某种额外的命令。代理实际上是我找到的解决方案的一半:我运行一个 gradle 脚本,其中包含我的依赖项列表,使用命令“gradle dependencies”并使用 jcenter。它下载 jcenter-cache 中的所有内容,然后我将其从那里复制到我的“封闭”本地存储库。
    • 知道了。是的,代理是一半。其他人将发出 REST 调用以将您想要的工件移动(提升)到“干净”的本地存储库。您可以从 Gradle 执行此 REST 命令。
    猜你喜欢
    • 2016-02-06
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2019-05-12
    相关资源
    最近更新 更多