我如何使用Maven获取最新的Hibernate版本?
我无法通过Maven依赖关系获取最新版本的Hibernate。 看起来,我可以从Maven中央存储库中获取的最新版本是3.2.6.GA,并且我有兴趣使用3.3.2.GA,它是hibernate.org网站上显示的最新版本。 当我在我的项目的pom.xml中将我的hibernate依赖项修改为最新版本时,当我运行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-validator依赖项,该依赖项也需要在本地安装,此时我停下来看了看有一个更好的方法,也许可以将Maven指向JBoss / Hibernate存储库等。与我使用的其他重要的开放源代码软件包(例如Spring或JUnit)相比,这真的很令人头疼 - 当我发布新版本的所有I do是更新dependency元素中的版本号,它只是起作用。
我曾尝试将下面的存储库声明添加到我的pom.xml中,但没有任何喜悦:
<repositories>
<repository>
<id>jboss</id>
<url>http://repository.jboss.org/maven2</url>
</repository>
</repositories>
我搜索了Google,但没有找到多大帮助。 有人可以建议使用最新版本的hibernate或hibernate-core(3.3.2.GA),hibernate-validator(3.1.0)和hibernate-annotations(3.4.0)的最直接的方法吗?
JBoss已经开始在JBoss社区博客上发布与Maven central同步自己的repo,因此现在可以使用hibernate
构件,而无需将JBoss存储库添加到您的pom.xml
或存储库管理器中。
搜索结果hibernate-core:
要将Hibernate Core 3.6.3添加到您的项目中,只需将以下代码片段添加到您的pom中即可:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.3.Final</version>
</dependency>
你有问题,因为org.hibernate:hibernate:3.3.2.GA是用于构建其余模块的聚合器POM,它实际上不是一个jar。 它看起来像是在3.2.7之后发生的重构,并且抛弃了人们。 作为参考,这篇博客文章暗示了他们已经将Hibernate推向中心的问题,并可能解释这一变化。
如果你看看JBoss仓库,你会发现3.3.2.GA的hibernate模块是托管的,它们只是作为独立的工件,hibernate-core,hibernate-ehcache等托管。所以你的仓库声明是正确的,您只需要微调依赖声明就可以考虑更改。
JBoss存储库主要包含hibernate-annotations-3.4.0.GA,hibernate-validator-3.1.0.GA和hibernate-core-3.3.2.GA等。 尝试将特定工件添加到您的POM中,并像您已经声明的那样使用JBoss存储库。
还有一个hibernate-dependencies pom为大多数hibernate构件(包括core)提供传递依赖性。 所以最简单的做法是用hibernate-dependencies替换现有的hibernate依赖声明
你的依赖最终会像这样...
<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)的项目中定义所有这些hibernate依赖关系,然后为所有使用hibernate的项目引用该单个项目(当然,如果hibernte团队提供了该项目, )。
这很令人沮丧,但是新版本并不存在,并且很久没有发布过。 具有讽刺意味的是,Hibernate构件具有一些相当复杂的相互依赖关系,并且这些依赖关系具有良好记录的最低版本,它们将被理想地表示为Maven POM。 相反,我们必须自己下载二进制文件,并尝试在本地进行表达。
链接地址: http://www.djcxy.com/p/29645.html上一篇: How can I use Maven to get the latest Hibernate release?