如何获得Gradle下载和缓存Scala编译器JAR?

时间:2018-08-09 09:02:31

标签: gradle

我有一个build.gradle,其开头是这样的:

plugins {
    id "com.github.johnrengelman.shadow" version "1.2.3"
}

apply plugin: 'java'
apply plugin: 'scala'
apply plugin: 'application'

当我在Docker(以CI方式)中运行它时,它花了大约一分钟时间下载jar(例如scala编译器jar)。每次更改源代码并在Docker中重建时,都会再次下载文件。为了加快速度,我复制了上面的代码段并添加了

task download() {}

(在Dockerfile层中)调用gradle download会获取一些JAR,但不会获取scala编译器JAR。我怎么能得到那些?

1 个答案:

答案 0 :(得分:1)

您可能需要在~/.gradle/caches中缓存Gradle缓存位置。如果从主机系统挂载此目录,它将使您能够重用Gradle缓存。

不幸的是,任务会延迟触发工件下载。如果在必需的依赖项配置上调用getResolvedConfiguration()方法,则可以模拟此行为。

用所需的配置名称替换compile,此调用将下载所有依赖项:

task downloadCompileJars() {
    doLast {
        configurations.getByName('compile').resolvedConfiguration
    }
}