Проекты Hibernate и Строительство с Maven - PullRequest
7 голосов
/ 27 июля 2010

Я пытаюсь построить относительно простой проект и включить 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.Я вряд ли эксперт по Maven.Я просто очень хочу знать, что поместить в мой файл pom.xml, чтобы это заработало.

Ответы [ 3 ]

17 голосов
/ 28 июля 2010

Проблема в том, что эта зависимость

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.5.4-Final</version>
    <!-- <type>jar</type> is implied here -->
</dependency>

- это просто помпа, а вы пытаетесь сослаться на нее как на банку. Таким образом, чтобы сослаться на это, вы должны сделать это так:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.5.4-Final</version>
    <type>pom</type>
</dependency>

Это позволит получить транзитивные зависимости этого помпа, но не сам артефакт. Тем не менее, 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)

4 голосов
/ 27 июля 2010

Ну, я нашел ответ ...

Это даст то, что вам нужно.На странице, указанной выше, добавьте в файл 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>
1 голос
/ 25 мая 2011

JBoss начал синхронизировать свое собственное репо с Maven central как , опубликованное в блоге сообщества JBoss , поэтому теперь доступны артефакты hibernate без необходимости добавлять репозиторий JBoss в pom.xml или репозиторий.manager.

Результат поиска для hibernate-core :

search result for hibernate-core

Чтобы добавить Hibernate Core 3.6.3 в свой проект, просто добавьтеследующий фрагмент к вашей поме:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.3.Final</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...