2010-04-29 26 views
5

Tôi muốn sử dụng hibernate-3.5-1.Final cùng với plugin này, những gì nên được phụ thuộc của tôi ở đây. Dường như nó đang nhặt một bộ lọ cũ và thất bại ngay bây giờ.hibernate3-maven-plugin phụ thuộc cho phiên bản mới hơn của hibernate

  <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>hibernate3-maven-plugin</artifactId> 
       <version>2.2</version> 
      </plugin> 

EDIT1:

[INFO] class org.hibernate.cfg.ExtendedMappings has interface org.hibernate 
.cfg.Mappings as super class 
[INFO] -------------------------------------------------------------------- 
---- 
[INFO] Trace 
java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.ExtendedMap 
pings has interface org.hibernate.cfg.Mappings as super class 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.ja 
va:124) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
     at java.net.URLClassLoader.access$000(URLClassLoader.java:56) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmC 
lassLoader.java:195) 
     at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClas 
sRealm.java:255) 
     at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLo 
ader.java:214) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
     at org.hibernate.cfg.AnnotationConfiguration.createExtendedMappings 
(AnnotationConfiguration.java:187) 
     at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(Anno 
tationConfiguration.java:277) 
     at org.hibernate.cfg.Configuration.buildMappings(Configuration.java 
:1206) 
     at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configurat 
ion.java:1226) 
     at org.hibernate.ejb.EventListenerConfigurator.configure(EventListe 
nerConfigurator.java:173) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration. 
java:854) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration. 
java:191) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration. 
java:253) 

Trả lời

4

tôi đã có thể để có được làm việc này với các thiết lập sau đây phụ thuộc (ví dụ: 3.5.1-cuối cùng cho tất cả các lọ ngủ đông)

   <dependencies> 
        <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>hibernate-core</artifactId> 
         <version>${hibernate-core.version}</version> 
        </dependency> 

        <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>hibernate-entitymanager</artifactId> 
         <version>${hibernate-entitymanager.version}</version> 
        </dependency> 

        <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>hibernate-annotations</artifactId> 
         <version>${hibernate-annotations.version}</version> 
        </dependency> 

        <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>ejb3-persistence</artifactId> 
         <version>3.3.2.Beta1</version> 
        </dependency> 

        <dependency> 
         <groupId>org.hibernate</groupId> 
         <artifactId>hibernate-tools</artifactId> 
         <version>${hibernate-tools.version}</version> 
        </dependency> 
       </dependencies> 
+0

Vui vì nó làm việc nhưng tôi vẫn không hiểu những gì bạn đã làm chính xác và nơi bạn tuyên bố những phụ thuộc (bên trong các plugin?). Bằng cách này, bạn về mặt lý thuyết không nên khai báo hibernate-core và hibernate-annotations, hibernate-entitymanager kéo chúng quá mức. Và tôi không nghĩ rằng sự bền bỉ của ejb3 là bắt buộc đối với JPA 2.0. –

+0

Tôi đã thêm những phụ thuộc này cho plugin hibernate3-maven. Nếu không có phiên bản mới nhất của ejb3-persistence nó sẽ không hoạt động. – Sam

+0

Tính năng này cũng phù hợp với tôi. Tôi cũng có thể bỏ qua '' cho công cụ ngủ đông-công cụ, vì tôi không thể tìm thấy phiên bản mới hơn của nó và phiên bản công cụ ngủ đông cũ dường như hoạt động tốt với lõi ngủ đông mới và sự ổn định của ejb3 hiện vật. –

2

Thật khó để nói chính xác những gì đang xảy ra nhưng thực tế là phiên bản 2.2. của hibernate3-maven-plugin tuyên bố hibernate-core 3.3.1.GAhibernate-tools 3.2.3.GA làm phụ thuộc và được biên dịch dựa trên các phiên bản đó. Bạn đã cố gắng thay thế chúng? Nếu có, tôi không nghĩ rằng bạn có thể (đặc biệt là kể từ khi họ dường như giới thiệu những thay đổi không tương thích). Có điều đó nói rằng, điều này không nên ngăn cản bạn tuyên bố hibernate-entitymanager-3.5.1-Final là phụ thuộc trong dự án của bạn và để cho plugin sử dụng các phiên bản khác (mà nên là hành vi mặc định).

+0

Cảm ơn Tôi có ngày hôm qua làm việc này với sự phụ thuộc mà tôi đã đề cập ở trên. Nó cần thiết tất cả các phụ thuộc trên không chỉ là lõi jar – Sam

1

Tôi đã có một vấn đề tương tự.

Sau khi chạy "phụ thuộc mvn: cây", tôi thấy rằng unitils-DBUnit: 3.1 phụ thuộc vào một hibernate.jar cũ hơn ...

[INFO] +- org.unitils:unitils-dbunit:jar:3.1:test 
[INFO] | +- org.unitils:unitils-core:jar:3.1:test 
[INFO] | | +- commons-logging:commons-logging:jar:1.1:test 
[INFO] | | +- commons-lang:commons-lang:jar:2.5:test (version managed from 2.3) 
[INFO] | | \- ognl:ognl:jar:2.6.9:test 
[INFO] | +- org.unitils:unitils-database:jar:3.1:test 
[INFO] | | +- org.unitils:unitils-dbmaintainer:jar:3.1:test 
[INFO] | | | \- org.hibernate:hibernate:jar:3.2.5.ga:test 

Moving libs Hibernate trước các unitils phụ thuộc giải quyết vấn đề. Đặt hàng các vấn đề.

Chúc may mắn, J.

1

Đối với Hibernate 3.6.0.Final tôi cài đặt plugin như sau:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>hibernate3-maven-plugin</artifactId> 
    <version>2.2</version> 
    <dependencies> 
     <dependency> 
      <groupId>xerces</groupId> 
      <artifactId>xercesImpl</artifactId> 
      <version>2.9.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.1.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>com.microsoft</groupId> 
      <artifactId>sqljdbc4</artifactId> 
      <version>3.0.1301</version> 
     </dependency> 
    </dependencies> 
</plugin> 
1

Giải pháp này là tốt nhất cho tôi. Chỉ cần thêm một phụ thuộc, và nó sẽ thêm phần còn lại phụ thuộc necesary: ​​

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

Phiên bản mới nhất ở đây: http://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager

Các vấn đề liên quan