如何缓存 gradle 插件依赖项?

How to cache gradle plugin dependencies?

我有一个 gradle 脚本来使用 gradle 应用程序插件执行 Kotlin 代码:

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.4.10'
    id 'application'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation platform("org.jetbrains.kotlin:kotlin-bom")
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    // Some other deps
}

sourceSets {
    main.kotlin.srcDirs += '.'
}

application {
    mainClassName = 'MainKt'
}

我想要实现的目标: 在 docker 容器启动期间,我想使用 gradle build --build-cache 命令加载所有必要的依赖项并且能够到 运行 gradle run --offline 在图像准备好后的离线模式下。

我现在有什么: 我收到 No cached version of org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.4.10 available for offline mode. 错误,因为在 build 阶段没有缓存插件依赖项。

有什么想法可以强制 gradle 不仅缓存列出的依赖项,还缓存插件所需的依赖项吗?

将插件依赖添加到依赖列表明确帮助我解决了这个问题:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable" // <-- this solves the problem
    // Some other deps
}

希望这个回答对您有所帮助!尽管用例非常狭窄。