Java 为什么pom.xml要求版本依赖?
在用于hibernate的pom.xml中:Java 为什么pom.xml要求版本依赖?,java,maven,version,pom.xml,artifact,Java,Maven,Version,Pom.xml,Artifact,在用于hibernate的pom.xml中: <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> </dependency> org.hibernate.javax.persistence hibernat
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
没有版本。但当我在Eclipse中将pom添加到我的应用程序中时,我收到了错误消息
这个版本必须是正确的。为什么会有这种差异?
谢谢。Maven需要知道下载/检查哪个版本
添加
version
元素作为依赖项的子元素<2.0是受支持的JPA版本,而不是工件的版本
试一试
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.1.最终版本
Arnon您在hibernate的dependencies中看到的摘录实际上有一个版本,该版本在父pom的DependencyMgt部分中定义。这只允许在一个位置定义要使用的版本,父pom的所有子项只需指示它们想要的依赖项,它们就会自动获得父项中指定的版本
在您的案例中添加一个
,或者在pom.xml中使用dependencyMgmt部分来指示所需的hibernate-jpa-2.0-api版本。有两种解决这些问题的方法:
-插入您自己的版本,以便Maven知道您需要什么依赖关系(它可以在本地存储库中搜索该版本,也可以从Maven存储库下载,或者您可以给它提供从何处下载该版本的链接)
-添加一个使用您正在调用的工件的父级,然后您就不需要该版本(它需要父级版本)以及为什么分布式hibernate pom不包含?@user710818根据对artifactId
的猜测,我会选择2.0
。
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>