2013-05-03 71 views
5

我試過爲我的Spring 3Hibernate 3.6應用程序配置pom.xml文件。 的pom.xml相關部分看起來是這樣的:將pom.xml配置爲休眠3.6

<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有什麼問題,因爲它在構建項目時不會下載這個依賴關係?

回答

4

嘗試hibernate-entitymanager而不是hibernate-core

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

這將包括所有必要的依賴關係。進行此更改後,請檢查Maven依賴關係層次結構。

BTW在行家中央休眠的最新的可用版本是4.1.18

+0

因此,如果我將它更改爲'hibernate-entitymanager',那麼我可以刪除所有其他依賴關係,那下面的依賴? – Dworza 2013-05-03 07:43:35

+2

是的,entitymanager會爲Hibernate添加core,javassisst和其他所需的內容。請注意,它們將是一致的版本 – 2013-05-03 07:47:29

1

拋出java.lang.ClassNotFoundException還應該提到這是沒有找到類的名稱。

  1. 首先你要驗證你試圖複製的jar是否被複制到構建路徑中。

  2. 如果1爲yes,則展開javassist-3.17.1-GA.jar以檢查是否存在您所遇到的異常的缺失類文件。

解決問題的外部jar,試着找出它的版本,也許你可以從該jar的MANIFEST.MF文件中得到它。

可能是一些重構導致問題。

1
<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>