使用Java 11处理外部库中包含模块信息的XML(dom4j问题)

使用Java 11处理外部库中包含模块信息的XML(dom4j问题),java,xml-parsing,migration,java-platform-module-system,dom4j,Java,Xml Parsing,Migration,Java Platform Module System,Dom4j,使用java模块系统将项目从java 8迁移到java 11时 由于使用了库dom4j(版本2.1.3),我们注意到两个警告 问题 “自动模块‘dom4j’的名称不稳定,它是从模块的文件名派生的。”(Eclipse 2020-09) “检测到所需的基于文件名的自动模块:[dom4j-2.1.3.jar]。请不要将此项目发布到公共工件存储库!”(Maven 3.6.0) 形势 据我所知,dom4j的开发人员都意识到了这个问题: 因为这个问题已经有一年多的历史了,仍然是开放的,而且最后一次提交给m

使用java模块系统将项目从java 8迁移到java 11时 由于使用了库dom4j(版本2.1.3),我们注意到两个警告

问题

  • “自动模块‘dom4j’的名称不稳定,它是从模块的文件名派生的。”(Eclipse 2020-09)
  • “检测到所需的基于文件名的自动模块:[dom4j-2.1.3.jar]。请不要将此项目发布到公共工件存储库!”(Maven 3.6.0)
  • 形势

    据我所知,dom4j的开发人员都意识到了这个问题:

    因为这个问题已经有一年多的历史了,仍然是开放的,而且最后一次提交给master branch的时间是7个月,所以我们不想从dom4j(遗憾的是,我真的很喜欢dom4j)转移到一个新的库中。我们真的想使用Java的新模块系统,不想忽略这些警告

    问题

    您能推荐一个用于xml处理的“现代”Java-9模块系统感知库吗?我们主要使用简单的东西,比如读/解析、写和漂亮的打印。Apache-2.0许可证固然不错,但不是必需的

    我的研究人员现在透露 这是Apache-2.0许可证,似乎包含Java 9模块定义。您能推荐Aalto或任何其他库用于java模块系统吗

    可复制性

    使用一个简单的pom.xml,包括对

    <groupId>org.dom4j</groupId>
    <artifactId>dom4j</artifactId>
    <version>2.3.1</version>
    

    我不确定这是否是一个选项,但
    gradle
    有一个插件可以为您做到这一点,尽管搬到gradle可能根本不是一个选项,我理解。以防万一,may be将是一本很好的读物。我不确定这是否是一个选项,但
    gradle
    有一个插件可以为您做到这一点,尽管搬到gradle可能根本不是一个选项,我理解。以防万一,也许会是一本好书。
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
     <release>11</release>
     <encoding>utf-8</encoding>...
    
    module dom4jproblem {
      exports mypackage;
      
      requires dom4j;
    }