'"Unresolved reference: implementation" by using subprojects in kotlin-gradle
I want to split my project into subprojects. The default Gradle setting from the IntelliJ IDE is:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.50"
}
group = "project"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
That setting compiles. ButI don't want repeat that code in every subproject. So I changed the build.gradle.kts to
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
subprojects {
plugins {
kotlin("jvm") version "1.3.50"
}
group = "project"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
}
but I get the exception:
e: C:[...]\build.gradle.kts:1:12: Unresolved reference: jetbrains e: C:[...]\build.gradle.kts:16:9: Unresolved reference: implementation e: C:[...]\build.gradle.kts:19:20: Unresolved reference: KotlinCompile e: C:[...]\build.gradle.kts:19:35: Type mismatch: inferred type is () -> Unit but Class<TypeVariable(S)!>! was expected e: C:[...]\build.gradle.kts:20:9: Unresolved reference: kotlinOptions
FAILURE: Build failed with an exception.
Where: Build file 'C:[...]\build.gradle.kts' line: 1
What went wrong: Script compilation errors:
Line 01: import org.jetbrains.kotlin.gradle.tasks.KotlinCompile ^ Unresolved reference: jetbrains
Line 16: implementation(kotlin("stdlib-jdk8")) ^ Unresolved reference: implementation
Line 19: tasks.withType { ^ Unresolved reference: KotlinCompile
Line 19: tasks.withType { ^ Type mismatch: inferred type is () -> Unit but Class<TypeVariable(S)!>! was expected
Line 20: kotlinOptions.jvmTarget = "1.8" ^ Unresolved reference: kotlinOptions
5 errors
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 1s
I think there is an easy syntax error, but I can't find it.
Solution 1:[1]
Is important to define the repositories in settings.gradle.kts (project) so that the dependencies of the subprojects are recognized.
settings.gradle.kts (project)
pluginManagement {
repositories {
maven("https://dl.bintray.com/kotlin/kotlin-eap")
mavenCentral()
maven("https://plugins.gradle.org/m2/")
}
}
rootProject.name = "project"
include("app")
build.gradle.kts (project)
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
java
kotlin("jvm") version "1.4-M3" apply false
}
subprojects {
apply {
plugin("org.jetbrains.kotlin.jvm")
}
repositories {
maven("https://dl.bintray.com/kotlin/kotlin-eap")
mavenCentral()
}
val implementation by configurations
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
}
To define plugins for each submodule separately use the lambda apply { plugin("pluginId") }
build.gradle.kts (:app)
apply {
plugin("org.jetbrains.kotlin.jvm")
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
GL
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
