为什么gradle每次都与远程回购交谈?

时间:2016-03-02 17:49:23

标签: java gradle dependencies

我有一个包含大量依赖项的gradle项目,并且运行一个简单的任务(只是打印出类路径)大约需要12秒,即使已经下载了所有依赖项并且可以在缓存中使用。

如果我关闭网络接口并运行相同的任务,它会在大约一秒钟内完成。

所以,问题是为什么每次都要和互联网聊天?是否有一些我可以设置的标志,以使其更积极地使用缓存?我尝试使用Google搜索,并且有很多关于如何强制使用缓存的讨论,但我找不到任何相反的内容。

在回复评论中的问题时,我的repositories配置如下所示:

repositories {
  maven { url "${artifactoryUrl}/jcenter" }
  maven { url "${artifactoryUrl}/libs-release-local" }
  maven { url "${artifactoryUrl}/libs-snapshot-local" }
  mavenCentral()
  maven { url "http://maven.twttr.com" }
}

$artifactoryUrl指向我们内部运行的神器实例。

1 个答案:

答案 0 :(得分:2)

我知道如果你有一个依赖关系,你说你总是想要最新的版本,gradle必须检查所有的存储库,直到找到它。

如果您不希望gradle检查远程存储库并只使用其缓存,则可以使用--offline标记(see here)。