我正在尝试构建一个相对简单的项目,并将Hibernate与maven包含在一起。我正在尝试使用最新的版本的Hibernate(3.5.4-Final)。
似乎JBoss人员最近更改了他们的maven存储库,我在使maven构建工作时遇到了一些问题。我在网上和这里找到了很多信息,但似乎没有什么工作正常......我发现的很多信息都不能让我得到最新版本的Hibernate。
我在pom.xml中定义了以下存储库:
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Repository Group</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases</url>
</repository>
我在pom.xml中定义了以下依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.5.4-Final</version>
</dependency>
这似乎下载了一些依赖项,但还不足以构建。
我收到以下错误:
Downloading: http://repo1.maven.org/maven2/org/hibernate/hibernate/3.5.4-Final/hibernate-3.5.4-Final.jar [INFO] Unable to find resource 'org.hibernate:hibernate:jar:3.5.4-Final' in repository central (http://repo1.maven.org/maven2)
我已经阅读了JBoss所说的阅读Maven Getting Started - Users的页面,说实话,这对我没有任何意义。它说把东西放在我的settings.xml中。我想将信息放在我的pom.xml中,而不是要求每个人都修改settings.xml。我不是一个专家。我真的想知道在我的pom.xml文件中放入什么来使其工作。
答案 0 :(得分:17)
问题在于这种依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.5.4-Final</version>
<!-- <type>jar</type> is implied here -->
</dependency>
只是一个pom,而你试图将它作为一个jar引用。所以要引用它,你必须这样做:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.5.4-Final</version>
<type>pom</type>
</dependency>
这会抓住这个pom的传递依赖,而不是工件本身。 但是,pom only lists modules,而不是依赖,因为它是hibernate的根pom。它不会帮助你,不管它。
所以你真正想要的是
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.4-Final</version>
</dependency>
(对于经典的休眠)或
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.5.4-Final</version>
</dependency>
(对于jpa2提供商)
答案 1 :(得分:4)
我找到了答案......
这将获得您需要的东西。从上面引用的页面,将以下内容添加到您的pom.xml:
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
以下是您需要的依赖关系:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.4-Final</version>
</dependency>
答案 2 :(得分:1)
JBoss已经开始将自己的repo与Maven central同步为posted on the JBoss community blog,因此hibernate
工件现在可用,而无需将JBoss存储库添加到pom.xml
或存储库管理器。 / p>
Search result for hibernate-core:
要将Hibernate Core 3.6.3添加到您的项目中,只需将以下代码段添加到您的pom中:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.3.Final</version>
</dependency>