Gradle不下载罐子

Gradle不下载罐子

问题描述:

我正在研究应该在没有互联网连接的机器上运行的gradle项目。Gradle不下载罐子

为此,我创建了一个接受gradle缓存并将其复制到另一个目录中的任务,以用作本地存储库。

我已经建立了在线模式的项目,它的工作。 我已经运行我的任务将缓存复制到本地存储库,并且它工作。 但是,试图运行gradle build --offline我越来越喜欢这个错误(几个不同的jar文件)时:

Could not download commons-math3.jar (org.apache.commons:commons-math3:3.4.1): No cached version available for offline mode 

检查我的两个本地资源库和gradle这个缓存,我无法找到相关的JAR文件(在这种情况下commons-math3-3.4.1.jar)。

我尝试过使用gradle build --refresh-dependencies,我试图删除缓存,然后使用gradle build - 什么也没有,它不会下载jar文件,只有pom文件。 我甚至尝试手动下载jar并将它们放入我的本地存储库中正确的目录中,无法正常工作。

任何帮助,将不胜感激。

我不认为Gradle缓存可以传输到这样的另一台机器。我试图创建一个插件,它可以将配置中的依赖关系复制到本地目录以供离线使用here,但我已经点击this issue,其中不能从Gradle API访问父POM和BOM。我有一个失败的测试here,演示了插件的用法以及缺少父POM支持。

对此问题的建议之一是尝试IvyPot plugin。我自己没有尝试过,但它可能适用于你正在尝试的东西。

+0

这是那种我做的事(创建一个插件来复制缓存到一个目录下的项目中用作本地离线存储库)。它不那么普通,但它有效(我已经成功建立并运行了一个较小的测试项目)。我的问题是我没有在Gradle缓存中提到的jar文件(和另外3个),所以我不能将它们复制到我的离线存储库,所以它不起作用。 –

+0

这听起来很诡异,Gradle缓存目录是一个你不应该访问的私有实现。如果罐子丢失,那么我猜你在['Configuration.resolve()']之前复制了缓存(https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html# resolve())在一个或多个配置上被调用 –

+0

我已经在线创建了该项目,复制了jar和poms,试图离线构建并出现了错误。 –

您可能已经启用了代理,添加文件“gradle.properties”代理细节文件象下面这样:

systemProp.http.proxyHost=your.proxy.com 
systemProp.http.proxyPort=XXXX 
systemProp.http.proxyUser=user 
systemProp.http.proxyPassword=password