Hibernate项目和使用maven构建

Sta*_*key 7 maven-2 hibernate

我正在尝试构建一个相对简单的项目,并将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>
Run Code Online (Sandbox Code Playgroud)

我在我的pom.xml中定义了以下依赖项:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.5.4-Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这似乎下载了一些依赖项,但还不足以构建.

我收到以下错误:

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入门 - 用户的页面,说实话,这对我没有任何意义.它说把东西放在我的settings.xml中.我想将信息放在我的pom.xml中,而不是要求每个人都修改settings.xml.我不是一个专家.我真的想知道在我的pom.xml文件中放入什么来使其工作.

Sea*_*oyd 17

问题是这种依赖性

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.5.4-Final</version>
    <!-- <type>jar</type> is implied here -->
</dependency>
Run Code Online (Sandbox Code Playgroud)

只是一个pom,而你试图将它作为一个罐子引用.所以要引用它,你必须这样做:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.5.4-Final</version>
    <type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这将抓住这个pom的传递依赖,但不是工件本身.但是,pom 只列出模块,而不是依赖项,因为它是hibernate的根pom.它不会帮助你,不管它.

所以你真正想要的是

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.5.4-Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

(对于经典的休眠)或

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.5.4-Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

(对于jpa2提供商)