2012-05-03 5 views
3

В pom.xml для спящего режима:Почему pom.xml запрашивает версию для зависимости?

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

нет версии. Но когда я добавляю к моему приложению pom в Eclipse, я получаю ошибку , что версия должна быть. Почему это различие? Спасибо.

ответ

2

Maven должен знать, какую версию загрузить/проверить.

Добавить элемент version в качестве ребенка dependency.

+0

какой версии я должен добавить? – user710818

+0

И почему распределенный спящий пот не содержит? – 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

Экстракт вы видели в зависимости от спящего режима на самом деле имеет версию, которая определяется в родительском pom в разделе dependencyMgmt. Это позволяет только определить в одном месте версию для использования, и все дочерние элементы этого родительского pom должны только указать, какую зависимость они хотят, и они автоматически получают версию, указанную в родительском.

Добавьте в ваш случай <version> или используйте раздел dependencyMgmt в вашем pom.xml, чтобы указать версию hibernate-jpa-2.0-api, которую вы хотите.

2

Есть два пути решения этого вопроса:

-insert себя вариант таких, что Maven знает, что Dependency вам нужны (это либо поиск в локальном хранилище для него или загрузок из репозитория Maven или вы можете дать это ссылка, откуда скачать его)

-Добавить родитель, который использует артефакт, который вы звоните, и тогда вам не нужен версия (она принимает родительскую версию)