Я пытаюсь создать приложение Java 11 с модульной архитектурой и поддержкой gradle 5.4.1.Я создал два модуля - первый содержит сервис (без основного класса), который используется вторым модулем, вот структура:
root
-module1
--src
---main
----java
-----com.package1
------Service.java
-----module-info.java
--build.gradle
-module2
--src
---main
----java
-----com.package2
------MyClass.java
-----module-info.java
--build.gradle
build.gradle
settings.gradle
module-info.java из module1:
module module1 {
exports com.package1;
}
build.gradle из module1:
plugins {
id 'java'
}
sourceCompatibility = '11'
ext.moduleName = 'module1'
dependencies {
// ...
}
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
]
classpath = files()
}
}
module-info.java из module2:
module module2 {
requires com.package1;
}
build.gradle из module2:
plugins {
id 'java'
}
sourceCompatibility = '11'
ext.moduleName = 'module2'
dependencies {
compile project(':module1')
// ...
}
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
]
classpath = files()
}
}
root / settings.gradle:
rootProject.name = "root"
include 'module1'
include 'module2'
root / build.gradle:
plugins {
id 'java'
}
allprojects {
repositories {
mavenCentral()
jcenter()
}
}
Проблема в том, что когда я запускаю второй модуль gradle, я получаю сообщение об ошибке: moduleне найдено: module1 '.Я погуглил много решений, но ни одно из них не касается пользовательских модулей, а только внешних модулей / библиотек (например, spring.core и т. Д.).Информация о модулях находится в нужном месте в дереве файлов, и у меня не осталось идей, как можно решить эту проблему.Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи, я буду очень признателен за каждую помощь.