我有麻烦通过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)?
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>
您有任何问题,因为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团队反正只要项目单个项目)。
这是令人沮丧的,但新版本刚刚不存在,并没有很长一段时间。 讽刺的是,休眠伪影有一些相当复杂的相互依赖性和那些依赖关系,这将理想地表示为一个Maven POM的证据充分的最低版本。 取而代之的是,我们要下载二进制自己和尝试,并在当地表达出来。
你可以在你的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>
这个问题现在已经很长时间以来已经过时:所有的Hibernate的版本在Maven里可以得到年以来中央。
检查www.hibernate.org的最新Maven的坐标(不信任你的IDE的建议)。
罐子中缺少仓库,也许这是最新版本的Hibernate是不是在主repoistory的原因
新的这个和它玩了。 我没有一个完整的解决方案,但:
这似乎是我能够通过包括解决一些依赖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