Hibernate项目和使用maven构建

时间:2010-07-27 16:36:41

标签: hibernate maven-2

我正在尝试构建一个相对简单的项目,并将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文件中放入什么来使其工作。

3 个答案:

答案 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

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>