Модули Kotlin + Java 9: ​​модуль java.base не может быть найден в графике модулей

У меня возникли проблемы при создании проекта Kotlin, использующего функции Java 9. Я знаю, что kotlin просто позволяет генерировать байт-код Java 8, но согласно kotlinlang.org он должен поддерживать эту функцию, начиная с 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).

Что ж, давайте перейдем к моей проблеме: я получаю это, когда пытаюсь выполнить задачу gradle build:

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

Я искал эту ошибку в Google и нашел Эта тема, где у парня была такая же проблема, он сказал, что исправил ее, нацелившись на JDK больше 8, но я уже использую JDK 11 в качестве SDK проекта и sourceCompatibility.

Я оставлю здесь некоторые важные части build.gradle и структуры проекта, чтобы вы, ребята, могли их изучить.

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

модуль-info.java

module io.github.dogobot.core {
    requires kotlin.stdlib;
    requires kotlin.reflect;
    requires kotlin.logging;

    requires java.management;

    requires BootingBits;
}

Я могу без проблем запустить проект на Intellij Idea, просто получаю эту ошибку при выполнении на gradle.

Модули Kotlin + Java 9: ​​модуль java.base не может быть найден в графике модулей

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
6
0
8 107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я изменил свой gradle jdk с JDK 8 на JDK 11, и теперь он работает как шарм.

Это сработало и для меня, но в Maven. Изменил целевой jdk с 1,8 до 11, и это сработало.

SnuKies 29.10.2019 08:27

В моем случае я дважды проверил это для нового проекта, который я только что импортировал с этой ошибкой. Все было установлено правильно. Перезапуск IntelliJ устранил ошибку.

BrandonLenz 23.08.2021 19:58

Другие вопросы по теме