我有一个多模块的Java项目,我正在使用Gradle 8.1和Java JDK 17.0.4。但是在运行'gradle build'子模块“engine-rserve-wrapper”时出现错误:
...
> Task :rengine-rserve-wrapper:compileJava FAILED
D:\JavaProg\MASI_Projet_Integre\data-mining-apps\rengine-rserve-wrapper\src\main\java\module-info.java:3: error: module not found: REngine
requires REngine;
^
D:\JavaProg\MASI_Projet_Integre\data-mining-apps\rengine-rserve-wrapper\src\main\java\module-info.java:4: error: module not found: Rserve
requires Rserve;
所以问题似乎来自module.info。这就是:
module data.mining.apps.rengine.rserve.wrapper.main {
requires org.mongodb.bson;
requires REngine;
requires Rserve;
}
以及2个包依赖项(在子模块的build.gradle.kts中):
dependencies {
implementation("org.rosuda.REngine:REngine:2.1.0")
implementation("org.rosuda.REngine:Rserve:1.8.1")
implementation("org.mongodb:bson:4.8.2")
...
}
在这里我添加了“org.mongodb:bson:4.8.2”来检查问题是否来自任何依赖项,或者问题是否来自两个库“REngine”和“Rserve”。关于上述错误,似乎问题来自2个库。
但我不知道如何解决这个问题。一开始,我使用Maven完成了这个项目,它工作得很好,但现在我使用Gradle,我遇到了这个问题。
为了以防万一,下面是项目的层次结构:
data-mining-apps
|- "rengine-rserve-wrapper"
|- "Other children module"
|- settings.gradle.kts
\ build.gradle.kts
这里是父“settings.gradle.kts”:
rootProject.name = "data-mining-apps"
include("rengine-rserve-wrapper")
...
以及“engine-rserve-wrapper”子级的完整build.gradle.kts:
plugins {
id("java-library")
}
group = "be.masi.g2"
version = "0.0.1"
repositories {
mavenCentral()
}
java {
modularity.inferModulePath.set(true)
}
dependencies {
implementation("org.rosuda.REngine:REngine:2.1.0")
implementation("org.rosuda.REngine:Rserve:1.8.1")
implementation("org.mongodb:bson:4.8.2")
testImplementation(platform("org.junit:junit-bom:5.9.1"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
}
1条答案
按热度按时间0sgqnhkj1#
这是一个有点akward,但我忘了添加java模块化模块中的build.gradle.kts的“engine-rserve-wrapper”: