Сначала я новичок в модульной системе Java ... Я хочу подключить библиотеку org.controlsfx.controls
к своему приложению в качестве модуля. Я создал следующую module-info.java
в своем проекте:
module yummy {
requires org.controlsfx.controls;
requires javafx.controls;
requires javafx.fxml;
opens com.contedevel.yummy.gui to javafx.fxml;
opens com.contedevel.yummy.control to javafx.fxml;
exports com.contedevel.yummy;
}
И build.gradle
:
plugins {
id 'application'
id "org.beryx.jlink" version "2.17.5"
}
group 'com.contedevel'
version '1.0-SNAPSHOT'
application {
mainClassName = 'com.contedevel.yummy.App'
applicationName = 'yummy'
applicationDefaultJvmArgs = [
"--add-opens=javafx.base/com.sun.javafx.runtime=org.controlsfx.controls",
"--add-opens=javafx.base/com.sun.javafx.collections=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls",
"--add-opens=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls",
"--add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls",
"--add-opens=javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls",
"--add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls",
"--add-opens=javafx.controls/javafx.scene.control.skin=org.controlsfx.controls"
]
}
jlink {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'yummy'
}
jpackage {
resourceDir = file("$buildDir/resources")
}
}
repositories {
mavenCentral()
}
dependencies {
implementation('org.controlsfx:controlsfx:11.0.1') {
exclude group: 'org.openjfx'
}
compile 'org.webjars:font-awesome:5.13.0'
testCompile 'junit:junit:4.12'
}
Но когда я запускаю свое приложение (./gradlew run
), я получаю ошибка:
yummy/src/main/java/module-info.java:2: error: module not found: org.controlsfx.controls
requires org.controlsfx.controls;
Самое интересное, что IntelliJ IDEA не показывает никаких ошибок в module-info.java
.
Как подключить org.controlsfx.controls
как модуль?
PS Мне не нужно подключать OpenJFX модули, потому что я использую Liberica 14 со встроенным OpenJFX