Миграция Gradle на Java 11

В файле сборки Gradle ниже зависимость fileTree загружает некоторые локальные jar-файлы, но компиляция завершается ошибкой с такими ошибками, как «пакет groovy.text объявлен в безымянном модуле, но модуль groovy.text не читает его». Я не уверен, в чем проблема, может быть, мне нужно добавить что-то в задачу compileJava? Текущая конфигурация используется для приложения JavaFx, как описано в эта ветка

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0'
    }
}

apply plugin: 'application'
apply plugin: 'com.google.osdetector'

ext.platform = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os

repositories {
    mavenCentral()
    flatDir {
        dirs 'src/main/lib'
    }
}

dependencies {
    compile fileTree(dir: 'src/main/lib', include: ['*.jar'])
    compile "org.openjfx:javafx-base:11:$platform"
    compile "org.openjfx:javafx-graphics:11:$platform"
    compile "org.openjfx:javafx-controls:11:$platform"
    compile "org.openjfx:javafx-web:11:$platform"
}

compileJava {
    doFirst {
        options.compilerArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls',
                '--add-modules', 'javafx.graphics',
                '--add-modules', 'javafx.web'
        ]
    }
}

run {
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls'
        ]
    }
}

mainClassName = 'HelloFX'

После дополнительных исследований я обнаружил, что jar-файлы передаются по пути класса к компилятору. Но компиляция завершается неудачей из-за нескольких ошибок, таких как «пакет groovy.text объявлен в безымянном модуле, но модуль groovy.text не читает его». Что это могло быть?

DbSchema 06.11.2018 08:53

Почему вы добавляете свои библиотеки в папку src (src/main/lib)? Вы можете попробовать переместить их на lib, а не на src?

José Pereda 06.11.2018 09:28

Я переместил папку и исправил build.gradle, но ошибка осталась прежней

DbSchema 06.11.2018 11:35

У вас есть файл module-info.java? тогда вам нужно добавить что-то вроде requires groovy.text.

José Pereda 06.11.2018 11:47

Идеальным решением @dprutean было бы добавить эти jar-файлы в путь к модулю, но с учетом того, что вы могли намеренно поместить их в путь к классам, вы можете использовать аргументы виртуальной машины --add-reads groovy.text=ALL-UNNAMED для временного решения этой проблемы.

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

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