Ниже приведена структура проекта с MyProject в качестве проекта root и DataManager и FileManger в качестве подпроектов. Проект root включает как подпроекты, так и DataManger, включая FileManager. Проблема в том, что зависимости DataManager не видны, поэтому в нем говорится. MyProject имеет ту же проблему при импорте DataManager. Все ошибки похожи на эту:
C:\Users\XX\XX\XX\MyProject\DataManager\src\main\java\DataManager\DataManager.java:15: error: package org.yaml.snakeyaml is not visible
import org.yaml.snakeyaml.Yaml;
^
(package org.yaml.snakeyaml is declared in the unnamed module, but module org.yaml.snakeyaml does not read it)
.
MyProject
\build.gradle
settings.gradle
src
\main
\java
\module-info.java
MyProject
\App.java
\DataManager
\build.gradle
src
\main
\java
\module-info.java
DataManager
\DataManager.java
\FileManger
\build.gradle
src
\main
\java
\module-info.java
FileManger
\FileManger.java
MyProject Build:
plugins {
id 'java'
id 'application'
id 'groovy'
id 'org.openjfx.javafxplugin' version '0.0.8'
id 'org.beryx.jlink' version '2.12.0'
}
javafx {
version = "13"
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
mainClassName = "$moduleName/MyProject.App"
jlink {
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'MyProject'
}
}
repositories {
jcenter()
}
dependencies {
implementation 'com.google.guava:guava:28.1-jre'
testImplementation 'org.codehaus.groovy:groovy-all:2.5.8'
testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
testImplementation 'junit:junit:4.12'
compile project (':DataManager')
compile project (':FileManager')
}
application {
mainClassName = 'MyProject.App'
mainClassName = "$moduleName/MyProject.App"
}
Информация о модуле MyProject:
module MyProject{
requires javafx.fxml;
requires javafx.controls;
requires DataManager;
opens MyProject to javafx.fxml;
exports MyProject;
}
Сборка DataManger:
plugins {
id 'java'
id 'groovy'
}
repositories {
jcenter()
}
dependencies {
implementation 'com.google.guava:guava:28.1-jre'
// Use SnakeYAML
implementation group: 'org.yaml', name: 'snakeyaml', version: '1.25'
testImplementation 'org.codehaus.groovy:groovy-all:2.5.8'
testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
testImplementation 'junit:junit:4.12'
compile project(':FileManager')
}
Информация о модуле DataManager:
module DataManager{
requires FileManager;
requires snakeyaml;
exports DataManager;
}
Сборка FileManager:
plugins {
id 'java'
id 'groovy'
}
repositories {
jcenter()
}
dependencies {
implementation 'com.google.guava:guava:28.1-jre'
testImplementation 'org.codehaus.groovy:groovy-all:2.5.8'
testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
testImplementation 'junit:junit:4.12'
}
Информация о модуле FileManager:
module FileManager{
exports FileManager;
}