I'm having some issues on building a Kotlin project that uses Java 9 features. I know kotlin just allow Java 8 bytecode generation, but acording to kotlinlang.org it should support this functionality since Kotlin 1.2:
The Kotlin standard library is now fully compatible with the Java 9 module system, which forbids split packages (multiple jar files declaring classes in the same package).
Well, lets to my problem: I'm getting this when I try to execute gradle build task:
04:29:27: Executing task 'build'...
Task :compileKotlin FAILED e: Module java.base cannot be found in the module graph e: Module java.management cannot be found in the module graph
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':compileKotlin'.
Compilation error. See log for more details
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 0s 1 actionable task: 1 executed Compilation error. See log for more details 04:29:28: Task execution finished 'build'.
I searched for that error on Google and found this topic where a guy had the same problem, he said he fixed it by targeting a JDK greater than 8, but I'm already with JDK 11 as project SDK and sourceCompatibility.
I'll left some important parts of build.gradle and project structure here to you guys inspect it.
build.gradle
buildscript {
ext.kotlin_version = '1.3.21'
...
repositories { ... }
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17"
}
}
plugins {
...
}
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'
apply plugin: 'maven'
group 'io.github.dogobot.core'
version '4.0.0'
...
sourceCompatibility = 1.11
repositories {
mavenCentral()
jcenter()
maven { ... }
maven { ... }
maven {
url 'http://maven.ej-technologies.com/repository'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
...
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
module-info.java
module io.github.dogobot.core {
requires kotlin.stdlib;
requires kotlin.reflect;
requires kotlin.logging;
requires java.management;
requires BootingBits;
}
I can run the project with no problems on Intellij Idea, just get this error when executing on gradle.

I changed my gradle jdk from JDK 8 to JDK 11 and now it works like a charm.
File -> Invalidate caches -> select "Clear file system cache and Local history" -> Invalidate and Restart
Solved it for me...
If changing JDK version doesn't work try the Repair IDE option in IntelliJ
File -> Repair IDE
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With