如何缓存 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
}
希望这个回答对您有所帮助!尽管用例非常狭窄。
我有一个 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
}
希望这个回答对您有所帮助!尽管用例非常狭窄。