【问题标题】:Gradle doesn't download jarsGradle 不下载 jars
【发布时间】:2018-05-22 08:49:35
【问题描述】:

我正在做一个 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 文件。 我什至尝试手动下载 jars 并将它们放在我本地存储库中的正确目录中。

任何帮助将不胜感激。

【问题讨论】:

    标签: maven gradle offline-caching


    【解决方案1】:

    我不认为 Gradle 缓存可以像这样转移到另一台机器上。我正在尝试创建一个插件,它可以将依赖项从配置复制到本地目录以供离线使用here 但我已经点击了this issue,其中父 POM 和 BOM 无法从 Gradle API 访问。我有一个失败的测试 here 展示了插件的使用和缺乏父 POM 支持。

    关于这个问题的建议之一是尝试IvyPot plugin。我自己没有尝试过,但它可能适用于您正在尝试的内容。

    【讨论】:

    • 这就是我所做的(创建了一个插件来将缓存复制到项目内的目录中,以用作本地离线存储库)。它不那么漂亮,但它可以工作(我已经成功地构建并离线运行了一个较小的测试项目)。我的问题是我在 gradle 缓存中没有提到的 jar 文件(和其他 3 个),所以我无法将它们复制到我的离线存储库,所以它不起作用。
    • 这听起来很骇人听闻,Gradle 缓存目录是您不应该访问的私有实现。如果缺少 jar,那么我猜您在一个或多个配置上调用 Configuration.resolve() 之前复制了缓存
    • 我已经在线构建了项目,复制了jar和pom,尝试离线构建并得到了提示。
    【解决方案2】:

    您可能启用了代理,请在“gradle.properties”文件中添加代理详细信息,如下所示:

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

    【讨论】:

      猜你喜欢
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2021-06-04
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多