为什么pom.xml要求版本依赖?

时间:2012-05-03 07:52:20

标签: java maven version pom.xml artifact

在homnate的pom.xml中:

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

没有版本。但是当我在Eclipse中添加我的应用程序pom时,我收到错误 该版本必须是。为何如此区别? 感谢。

4 个答案:

答案 0 :(得分: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 :(得分:2)

Maven需要知道要下载/检查的版本。

添加version元素作为dependency的子元素。

答案 2 :(得分:2)

有两种方法可以解决这些问题:

- 插入自己的版本,以便Maven知道你需要什么依赖(它可以在本地存储库中搜索它或从maven存储库下载,或者你可以给它一个从哪里下载它的链接)

-add使用您正在调用的工件的父级,然后您不需要该版本(它采用父级版本)

答案 3 :(得分:1)

您在hibernate的依赖项中看到的提取实际上有一个版本,它在父pom中的dependencyMgmt部分中定义。这允许只在一个地方定义要使用的版本,并且该父pom的所有子节点只需要指示他们想要的依赖项,并且它们会自动获得父节点中指定的版本。

在您的案例中添加<version>,或者在pom.xml中使用dependencyMgmt部分来指示您想要的hibernate-jpa-2.0-api版本。