【问题标题】:Why pom.xml ask a version for dependency?为什么 pom.xml 要求依赖版本?
【发布时间】:2012-05-03 07:52:20
【问题描述】:

在 pom.xml 中用于休眠:

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

没有版本。但是当我在 Eclipse 中添加到我的应用程序 pom 时,我收到错误 应该是那个版本。为什么会有这种差异? 谢谢。

【问题讨论】:

    标签: java maven version pom.xml artifact


    【解决方案1】:

    2.0是支持的JPA版本不是工件的版本

    试试

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

    阿农

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 为什么分布式hibernate pom不包含?
      • @user710818 根据对artifactId 的猜测,我会选择2.0
      【解决方案3】:

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

      在您的情况下添加&lt;version&gt;,或者在您的 pom.xml 中使用 dependencyMgmt 部分来指示您想要的 hibernate-jpa-2.0-api 版本。

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2016-08-02
          • 1970-01-01
          • 2022-01-22
          • 2017-05-07
          • 1970-01-01
          • 1970-01-01
          • 2020-12-11
          • 2021-03-03
          • 2019-04-16
          相关资源
          最近更新 更多