问题描述
我想用模块将旧程序从 Java 8 更新到 Java 15,因此我重写和更新了很多代码。一切正常,直到更新库以编写电子表格文档。
在旧版本中,我使用 org.odftoolkit 和 simple-api 和 maven。
<dependency>
<groupId>org.odftoolkit</groupId>
<artifactId>odfdom-java</artifactId>
<version>0.8.7</version>
</dependency>
<dependency>
<groupId>org.odftoolkit</groupId>
<artifactId>simple-java</artifactId>
<version>0.4</version>
</dependency>
如 here 所述,此 API 已弃用,我想过渡到当前的 ODFDOM API。但是文档不是最新版本,我没有找到 java 模块的示例。
我添加了 maven 依赖项,但问题是如何将其添加到 module-info.java 文件中。我所有的尝试
requires org.odftoolkit.odfdom.doc.table;
或同等条件下惨败。
我的问题可能很简单,但对我来说,这是一座大山。这样做的正确方法是什么?感谢您的任何意见。
解决方法
导出模块名称
jar --file=/path/to/your/jar/odfdom-java-0.8.7.jar --describe-module
添加依赖指令
在您的情况下,如果这些依赖项尚未模块化或声明其 Automatic-Module-Name
。您仍然可以在模块指令中使用派生名称来使用模块包中的公共类。
requires odfdom.java;
requires simple.java;
作为模块声明指南的specification:
requires {RequiresModifier} ModuleName ;
RequiresModifier:
(one of)
transitive static
您需要指定模块名称,而不是您的代码将依赖的包。
此外,通过一些研究,我发现您可能想要测试工具包的 BETA 或 RC 版本,如 repository tags 和 maven central 中所列。