2012-05-03 94 views
3

在pom.xml中爲休眠:爲什麼pom.xml要求版本依賴?

<dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
    </dependency> 

沒有版本。但是,當我在Eclipse中添加到我的應用程序pom時,我收到該版本必須的錯誤 。爲什麼這個區別? 謝謝。

回答

2

Maven需要知道要下載/檢查的版本。

添加version元素的dependency一個孩子。

+0

我要補充的是什麼版本? – user710818

+0

爲什麼分佈式Hibernate POM不包含? – user710818

+0

@ user710818從'artifactId'的猜測,我會用'2.0'去。 – alex

4

2.0是JPA的版本支持不是神器的版本

嘗試

<dependency> 
    <groupId>org.hibernate.javax.persistence</groupId> 
    <artifactId>hibernate-jpa-2.0-api</artifactId> 
    <version>1.0.1.Final</version> 
</dependency> 

1

你在Hibernate的依賴看到的提取物實際上有一個版本,在它的dependencyMgmt部分中定義在父pom中。這允許只在一個地方定義要使用的版本,並且該父pom的所有子節點只需指示他們想要的依賴關係,並自動獲得在父節點中指定的版本。

在你的情況下添加一個<version>,或者也可以在你的pom.xml中使用dependencyMgmt部分來表明你想要的hibernate-jpa-2.0-api的版本。

2

有解決這些問題的方法有兩種:

-insert自己的版本,這樣的Maven知道依賴你需要(它無論是在本地倉庫中有它的搜索或下載的Maven倉庫或者你可以給它從哪裏下載)

-add使用您呼叫,然後你不需要的版本神器父的鏈接(需要父版本)