Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么pom.xml要求版本依赖?_Java_Maven_Version_Pom.xml_Artifact - Fatal编程技术网

Java 为什么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

在用于hibernate的pom.xml中:

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