Roma  Pochanin
Roma Pochanin

Reputation: 302

How to cache gradle plugin dependencies?

I'm having a gradle script to execute Kotlin code with the gradle application plugin:

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'
}

What I would like to achieve: During the docker container startup I would like to load all the necessary dependencies with gradle build --build-cache command and be able to run gradle run --offline in the offline mode when the image is ready.

What do I have at the moment: I'm getting No cached version of org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.4.10 available for offline mode. error because plugin dependencies are not being cached during the build phase.

Any ideas what I can do to force gradle to cache not only listed dependencies but also dependencies required by plugins?

Upvotes: 1

Views: 465

Answers (1)

Roma  Pochanin
Roma Pochanin

Reputation: 302

Adding the plugin dependency to the dependency list explicitly helped me to resolve this issue:

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

I hope this answer will be helpful! Although the use-case is pretty narrow.

Upvotes: 1

Related Questions