【问题标题】:Configure pom.xml for hibernate 3.6为休眠 3.6 配置 pom.xml
【发布时间】:2013-04-27 13:09:51
【问题描述】:

我尝试为我的Spring 3Hibernate 3.6 应用程序配置pom.xml 文件。 pom.xml 的相关部分如下所示:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.9</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.3.Final</version>
    </dependency>
    <dependency>
        <groupId>org.javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.17.1-GA</version>
    </dependency>
    <dependency>
        <groupId>asm</groupId>
        <artifactId>asm-all</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>2.7.7</version>
    </dependency>

尽管如此,如果我不将javassist.jar 库作为External jar 直接包含到我的构建路径中,我会不断收到java.lang.ClassNotFoundException。我的pom.xml 有什么问题吗,因为它在构建项目时没有下载这个依赖项?

【问题讨论】:

    标签: hibernate maven pom.xml java


    【解决方案1】:

    尝试hibernate-entitymanager 而不是hibernate-core

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.6.3.Final</version>
    </dependency>
    

    这将包括所有必要的可传递依赖项。进行此更改后检查 maven 依赖层次结构。

    顺便说一句,maven Central 中最新可用的休眠版本是 4.1.18

    【讨论】:

    • 所以如果我将其更改为hibernate-entitymanager 那么我可以删除所有其他依赖项,即低于该依赖项的所有其他依赖项?
    • 是的,entitymanager 将添加 Hibernate 所需的 core、javassisst 和其他。请注意,它们将是一致的版本
    【解决方案2】:

    java.lang.ClassNotFoundException 还应提及未找到的类的名称。

    1. 首先验证您尝试复制的 jar 是否已复制到构建路径中。

    2. 如果 1 是,则展开 javassist-3.17.1-GA.jar 以检查是否存在导致异常的丢失类文件。

    解决问题的外部jar,尝试找出它的版本,也许你可以从那个jar的MANIFEST.MF文件中得到它。

    可能是某些被重构的东西导致了问题。

    【讨论】:

      【解决方案3】:
        <dependency>
              <groupId>org.hibernate</groupId>
              <artifactId>hibernate-core</artifactId>
              <version>4.0.1.Final</version>
          </dependency>
          <dependency>
              <groupId>org.hibernate</groupId>
              <artifactId>hibernate-validator</artifactId>
              <version>4.2.0.Final</version>
          </dependency>        
          <dependency>
              <groupId>org.hibernate.common</groupId>
              <artifactId>hibernate-commons-annotations</artifactId>
              <version>4.0.1.Final</version>
              <classifier>tests</classifier>
          </dependency>
          <dependency>
              <groupId>org.hibernate.javax.persistence</groupId>
              <artifactId>hibernate-jpa-2.0-api</artifactId>
              <version>1.0.1.Final</version>
          </dependency>      
          <dependency>
              <groupId>org.hibernate</groupId>
              <artifactId>hibernate-entitymanager</artifactId>
              <version>4.0.1.Final</version>
          </dependency>       
          <dependency>
              <groupId>javax.validation</groupId>
              <artifactId>validation-api</artifactId>
              <version>1.0.0.GA</version>
              <scope>provided</scope>
          </dependency>
          <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-api</artifactId>
              <version>1.6.4</version>
          </dependency>
          <dependency>
              <groupId>org.jboss.logging</groupId>
              <artifactId>jboss-logging</artifactId>
              <version>3.1.0.CR2</version>
          </dependency>
          <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-log4j12</artifactId>
              <version>1.6.4</version>
          </dependency>
      

      【讨论】:

        猜你喜欢
        • 2010-11-08
        • 2015-07-28
        • 2016-05-06
        • 2018-10-21
        • 2012-11-19
        • 2011-01-05
        • 2010-12-26
        • 2017-07-09
        • 1970-01-01
        相关资源
        最近更新 更多