Maven和xml解析的Hibernate依赖问题

Kai*_*oze 4 xml xpath dom maven-2 hibernate

我正在为我们的开发小组编写一个GWT-Hibernate内部Web应用程序。

以前,我已经编写了用于解析XML文件的工具,这些XML文件表示在现场收集的客户配置以进行分析。现在,我正在尝试为支持小组添加一个UI前端。在将UI合并并将代码解析到同一项目后,XML解析代码使用xpath和org.w3c.dom类消耗配置文件。我遇到了一个依赖问题。Hibernate 3.5.1依赖于使用旧版本xml-apis的dom4j。xml-apis jar具有org.w3c.dom类的旧版本,因此版本太旧以至于我在XML解析中使用的方法之一不可用。

org.w3c.dom.Node.getTextContext方法在旧的xml-apis类中不可用。


Node node = (Node)xpath.evaluate("//probe/configfile[@group=\"daemon.ini\"]/content", data, XPathConstants.NODE);
        if(node != null) {
            String content = node.getTextContent();
                // Do more work...
Run Code Online (Sandbox Code Playgroud)

Maven依赖项:tree显示了问题,休眠,dom4j,xml-apis 1.0.b2。

[INFO] +-org.hibernate:hibernate-core:jar:3.5.1-Final:compile
[INFO] | +-antlr:antlr:jar:2.7.6:compile
[INFO] | +-dom4j:dom4j:jar:1.6.1:编译
[INFO] | | \-xml-apis:xml-apis:jar:1.0.b2:compile

有关解决此问题的最佳方法的建议?

  1. Maven依赖项配置?我是Maven的新手,所以要明确。
  2. 使用其他API解析XML?

提前致谢。

Pas*_*ent 5

我不知道哪种版本适合您,但是可以通过在<dependencyManagement>元素中声明传递依赖项的版本来控制它们:

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>1.3.04</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

这是您将得到的:

[INFO] +-org.hibernate:hibernate-entitymanager:jar:3.5.4-Final:compile
[INFO] | +-org.hibernate:hibernate-core:jar:3.5.4-Final:compile
[INFO] | | +-antlr:antlr:jar:2.7.6:compile
[INFO] | | +-commons-collections:commons-collections:jar:3.2:compile
[INFO] | | +-dom4j:dom4j:jar:1.6.1:编译
[INFO] | | | \-xml-apis:xml-apis:jar:1.3.04:compile(版本从1.0.b2开始管理)

但正如我所写,我不知道哪个版本适合您的需求以及它们是否向后兼容。