[英]Gradle 6/Java 11 “module not found” error for poi and poi-ooxml but jars exist
我有一个问题让我发疯了好几天。 我对 Java 模块化系统比较陌生,但在我开始使用 poi 之前,我一直在设法正确声明我的依赖项。
这是我的 build.gradle 片段(gradle v 6.4):
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.slf4j:log4j-over-slf4j:1.7.30'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'commons-net:commons-net:3.6'
implementation 'com.google.guava:guava:28.1-jre'
implementation 'org.apache.poi:poi:4.1.2'
implementation 'org.apache.poi:poi-ooxml:4.1.2'
}
这是正确位于我的 gradle 缓存中的 poi jars:
~/.gradle/caches/modules-2/files-2.1/org.apache.poi$ tree
.
├── poi
│ └── 4.1.2
│ ├── 964bf41cf68bce08e4ef6b2279b559fdf8d454f4
│ │ └── poi-4.1.2.jar
│ ├── 9ce4c76815903772b25324d8419df2d3fe227f4d
│ │ └── poi-4.1.2.pom
│ └── ac5af3832ebaef94562a39591a000338bbae0e4b
│ └── poi-4.1.2-sources.jar
├── poi-ooxml
│ └── 4.1.2
│ ├── 712cc02d5bbe729d2485a1579f3d8dfc47e25b51
│ │ └── poi-ooxml-4.1.2-sources.jar
│ ├── 87d9a22aa9a7dd26e80c360e709f7ee02e32ab3b
│ │ └── poi-ooxml-4.1.2.jar
│ └── ccbcde71e4f0fdfa80e1007dd1babfc9828c629e
│ └── poi-ooxml-4.1.2.pom
这是我的模块信息.java:
module template {
requires spring.core;
requires poi;
requires poi.ooxml;
}
这是我在运行 gradle clean build 时遇到的错误:
error: module not found: poi
requires poi;
^
我尝试过的事情:
我对此束手无策——在我的休息日工作。 - 真的很感激一些意见。
正如我在上面的评论中所说,我只能通过进入 poi 库 jar 并将以下内容添加到 MANIFEST.MF 来实现此功能:
Automatic-Module-Name: poi
自动模块应该是由 java 创建的,没有这个(它只是从 jar 名称生成模块名称),但直到我添加了这个。 然而,自动模块是用其他库正确创建的,所以不太清楚是什么让它与众不同。
这不是一个长期的解决方案,但我想我会在这里发布以防它对任何人有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.