我正在尝试创建具有模块化体系结构和gradle 5.4.1支持的Java 11应用程序。我创建了两个模块-第一个模块包含第二个模块使用的服务(没有主类),结构如下:
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
module1中的module-info.java:
module module1 {
exports com.package1;
}
来自module1的build.gradle:
plugins {
id 'java'
}
sourceCompatibility = '11'
ext.moduleName = 'module1'
dependencies {
// ...
}
compileJava {
inputs.property("moduleName", moduleName)
doFirst {
options.compilerArgs = [
'--module-path', classpath.asPath,
]
classpath = files()
}
}
module2中的module-info.java:
module module2 {
requires com.package1;
}
module2中的build.gradle:
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运行第二个模块时,出现“错误:找不到模块:module1”。我在Google上搜索了许多解决方案,但它们都与定制模块无关,而仅涉及外部模块/库(例如spring.core等)。 Module-infos在文件树中的正确位置,并且我没有办法解决此问题。如果您有任何想法,请告诉我,我非常感谢每种帮助。