代码之家  ›  专栏  ›  技术社区  ›  Mohan

如何让Gradle下载并缓存scala编译器JARs?

  •  1
  • Mohan  · 技术社区  · 7 年前

    我有一个 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() {}
    

    打电话 gradle download (在Dockerfile层)获取一些jar,但不是scala编译器jar。我怎么才能拿到这些?

    1 回复  |  直到 7 年前
        1
  •  1
  •   jreznot    7 年前

    你可能需要在 ~/.gradle/caches . 如果您从主机系统装载此目录,它将使您能够重用分级缓存。

    不幸的是,任务会惰性地触发工件的下载。如果您调用 getResolvedConfiguration() 方法的依赖项配置。

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

    task downloadCompileJars() {
        doLast {
            configurations.getByName('compile').resolvedConfiguration
        }
    }
    
    推荐文章