问题描述
使用Java模块系统将项目从Java 8迁移到Java 11时 由于使用了dom4j库(版本2.1.3),我们注意到了两个警告。
问题
- “自动模块dom4j的名称不稳定,它是从模块的文件名派生的。” (Eclipse 2020-09)
- “检测到必需的基于文件名的自动模块:[dom4j-2.1.3.jar]。请不要将此项目发布到公共工件存储库!” (Maven 3.6.0)
情况
到目前为止,我可以看到dom4j的开发人员意识到了这个问题: https://github.com/dom4j/dom4j/issues/67
由于该问题已有1年以上的历史了,它仍然是开放的,并且对master分支的最后一次提交是7个月的历史,因此我们不打算从dom4j(不幸的是,我真的很喜欢dom4j)转移到一个新的库中。我们确实希望使用Java的新模块系统,并且不想忽略这些警告。
问题
您能推荐一个“现代” Java-9模块系统感知的库来进行xml处理吗?我们主要使用简单的内容,例如阅读/解析,书写和漂亮的打印。一个Apache-2.0许可证会很好,但这不是必需的。
我的瑞萨现正透露 https://github.com/FasterXML/aalto-xml 这是Apache-2.0许可证,并且似乎包含Java 9模块定义。您能推荐Aalto或任何其他库与Java模块系统一起使用吗?
可重复性
可以使用简单的pom.xml轻松地重现该问题,其中包括对...的依赖
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.3.1</version>
与mavens build插件一起
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>11</release>
<encoding>utf-8</encoding>...
和一个module-info.java
module dom4jproblem {
exports mypackage;
requires dom4j;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)