如何使用Maven来获得最新的Hibernate版本?(How can I use Maven to

2019-06-27 22:22发布

我有麻烦通过Maven的依赖Hibernate的最新版本。 看来,我可以从一个Maven中央存储库中取出最新的是3.2.6.GA,和我感兴趣的使用3.3.2.GA,这是对hibernate.org网站上显示的最新版本。 当我修改我的休眠依赖于我的项目的pom.xml我收到以下错误,当我运行Maven构建这个最新版本:

Missing:
----------
1) org.hibernate:hibernate:jar:3.3.2.GA

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=org.hibernate -DartifactId=hibernate -D
version=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there:

      mvn deploy:deploy-file -DgroupId=org.hibernate -DartifactId=hibernate -Dve
rsion=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[
id]

一旦我这样做,我继续得到指示的错误,我需要添加了Javassist依赖,那么我需要更新我的Hibernate验证的依赖,这也需要在本地安装,并在这一点上我停了下来,环顾四周,看有更好的办法,也许指向Maven来一个JBoss / Hibernate的仓库等,这似乎真的比我使用如Spring或其他JUnit的开放显著五言包头疼 - 当有发布的所有我的新版本要做的是更新的依赖元素的版本号,它就可以工作。

我曾尝试添加以下库声明到我的pom.xml,但没有喜悦:

<repositories>
    <repository>
        <id>jboss</id>
        <url>http://repository.jboss.org/maven2</url>
    </repository>
</repositories>

我搜索谷歌并没有发现其中很多的帮助。 有人建议要去关于使用休眠或休眠芯(3.3.2.GA)的最新版本的最直接的方式,休眠验证器(3.1.0),和休眠的批注(3.4.0)?

Answer 1:

JBoss的开始同步自己的回购与Maven中央发布JBoss上的社区博客 ,因此hibernate现在文物都可以,而不需要到JBoss库添加到您pom.xml或仓库管理器。

对于休眠核心搜索结果 :

为了在Hibernate 3.6.3内核添加到您的项目,只需添加下面的代码片段到您的POM:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.3.Final</version>
</dependency>


Answer 2:

您有任何问题,因为org.hibernate作为:冬眠:3.3.2.GA是用于构建模块的其余部分的聚合POM,它实际上不是一个罐子。 它看起来3.2.7后像重构发生而这扔人了。 仅供参考这个博客条目暗示,他们已经有促进休眠到中央的问题,也许可以解释的变化。

如果你在看JBoss的仓库 ,你会看到,对于3.3.2.GA休眠模块寄主,他们只是托管作为单独的文物,休眠核心,休眠-的Ehcache等,所以你的仓库声明是正确的,你只需要微调依赖声明采取的变化考虑在内。

JBoss的仓库举办hibernate-annotations-3.4.0.GA , hibernate-validator-3.1.0.GA和hibernate-core-3.3.2.GA在其他之中。 尝试添加特定的文物到您的POM,并使用你已经宣布JBoss的存储库。

还有一个休眠依赖性聚甲醛,提供传递依赖于大多数休眠工件(包括芯)。 所以最简单的做法是与休眠依赖性 ,以取代现有的休眠依赖性声明

你的依赖最终会这样的...

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-dependencies <!--or hibernate-core--></artifactId>
    <version>3.3.2.GA</version>
    <type>pom</type>
    <!--hibernate-dependencies is a pom, not needed for hibernate-core-->
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.4.0.GA</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>3.1.0.GA</version>
  </dependency>
  ...
  <!--any other hibernate deps not inherited transitively-->

为了使您的生活更简单,你可以定义所有这些Hibernate依赖于一个项目说叫(休眠-ALL),然后引用您的所有项目使用休眠(当然这将是很好,如果hibernte团队反正只要项目单个项目)。



Answer 3:

这是令人沮丧的,但新版本刚刚不存在,并没有很长一段时间。 讽刺的是,休眠伪影有一些相当复杂的相互依赖性和那些依赖关系,这将理想地表示为一个Maven POM的证据充分的最低版本。 取而代之的是,我们要下载二进制自己和尝试,并在当地表达出来。



Answer 4:

你可以在你的pom.xml用的Dependance

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.6.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.1.GA</version>
        </dependency>


Answer 5:

这个问题现在已经很长时间以来已经过时:所有的Hibernate的版本在Maven里可以得到年以来中央。

检查www.hibernate.org的最新Maven的坐标(不信任你的IDE的建议)。



Answer 6:

罐子中缺少仓库,也许这是最新版本的Hibernate是不是在主repoistory的原因



Answer 7:

新的这个和它玩了。 我没有一个完整的解决方案,但:

这似乎是我能够通过包括解决一些依赖http://repository.jboss.com/maven3/而不是行家2。

对于那些仍然存在问题,可以作为最后的稻草从Maven站点下载丢失的文件,例如,浏览:

http://repo1.maven.org/maven2/org/hibernate/hibernate-core/3.6.8.Final/

(是的,我想设置这个和其他合理的路径为存储库源,但没有成功...)

安装此jar放到你的Maven构建,这样做:

mvn install:install-file -Dfile=path/to/jar/hibernate-core-3.6.8.Final.jar -DgroupId=org.hibernate -DartifactId=hibernate-core -Dversion=3.6.8-Final -Dpackaging=jar

参考: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

对不起,仅仅是实现了,这是多余的,但希望是有帮助的一些以查看其他可能的URL。 - JB



文章来源: How can I use Maven to get the latest Hibernate release?