Как я могу использовать Maven для получения последней версии Hibernate?
У меня возникли проблемы с получением последней версии Hibernate через зависимость от Maven. Похоже, что последнее, что я могу получить из центрального репозитория Maven, - 3.2.6.GA, и меня интересует использование 3.3.2.GA, который является последней версией, указанной на сайте hibernate.org. Когда я изменяю зависимость hibernate с этой последней версией в моем проекте 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-validator, которая также должна быть установлена локально, и в этот момент я остановился и огляделся чтобы увидеть, есть ли лучший способ, возможно, указывая Maven на репозиторий JBoss/Hibernate и т.д. Это действительно кажется головной болью по сравнению с другими значительными пакетами открытого курса, которые я использую, например, Spring или JUnit, - когда есть новая версия, выпущенная все, что я делаю, обновляет номер версии в элементе зависимости, и она просто работает.
Я попробовал добавить нижеприведенное объявление репозитория в свой pom.xml, но без радости:
<repositories>
<repository>
<id>jboss</id>
<url>http://repository.jboss.org/maven2</url>
</repository>
</repositories>
Я искал Google и не нашел много полезного. Может ли кто-нибудь предложить наиболее простой способ использовать последние версии спящего или гибернатного ядра (3.3.2.GA), hibernate-validator (3.1.0) и hibernate-annotations (3.4.0)?
Ответы
Ответ 1
JBoss начал синхронизировать свое собственное репо с центральным Maven как размещенное на блоге сообщества JBoss, поэтому артефакты hibernate
теперь доступны без необходимо добавить репозиторий JBoss в ваш менеджер pom.xml
или репозитория.
Результат поиска для 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>
Ответ 2
У вас проблемы, потому что org.hibernate: hibernate: 3.3.2.GA - это агрегатор POM, используемый для сборки остальных модулей, на самом деле это не баночка. Похоже, что рефакторинг произошел после 3.2.7, и это отбросило людей. Для справки это запись в блоге намекает на проблемы, с которыми они продвигали Hibernate в центр и может объяснить изменение.
Если вы посмотрите в репозитории JBoss, вы увидите, что размещены модули hibernate для 3.3.2.GA, они просто размещены как отдельные артефакты, hibernate-core, hibernate-ehcache и т.д. Итак, ваше объявление репозитория верно, вам просто нужно точно настроить объявления зависимостей, чтобы внести изменения в учет.
В репозитории JBoss размещаются hibernate-annotations-3.4.0.GA, hibernate-validator-3.1.0.GA и hibernate-core-3.3.2.GA среди других. Попробуйте добавить к вашему POM конкретные артефакты и использовать репозиторий JBoss, как вы уже объявили.
Существует также hibernate-dependencies pom, который обеспечивает переходные зависимости для большинства артефактов гибернации (включая ядро). Таким образом, проще всего было бы заменить существующее выражение о спящем режиме с помощью спящего режима
Ваши зависимости будут такими, как это...
<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 предоставила этот проект в любом случае).
Ответ 3
Это расстраивает, но новых версий просто нет, и они не были надолго. Ирония заключается в том, что артефакты Hibernate имеют довольно сложные взаимозависимости и хорошо документированные минимальные версии этих зависимостей, которые идеально представлялись бы как Maven POM. Вместо этого мы должны сами загружать бинарные файлы и пытаться их выражать локально.
Ответ 4
Вы можете использовать зависимость в своем pom.xml
<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>
Ответ 5
Этот вопрос устарел с давних пор:
все выпуски Hibernate доступны в Maven central с тех пор.
Зайдите на сайт www.hibernate.org для получения последних координат Maven (не доверяйте своим предложениям IDE).
Ответ 6
в репозитории отсутствуют банки, возможно, именно поэтому последняя версия спящего режима не находится в основной репозитории
Ответ 7
новичок в этом и играя с ним. У меня нет полного решения. НО:
Казалось, что я смог разрешить несколько зависимостей, включив http://repository.jboss.com/maven3/ вместо maven 2.
для тех, кто остается проблематичным, можно в качестве последней соломы загружать отсутствующие файлы с сайта maven, например, просматривать:
http://repo1.maven.org/maven2/org/hibernate/hibernate-core/3.6.8.Final/
(да, я попытался установить этот и другие разумные пути как источник репозитория, но без успеха...)
чтобы установить эту банку в свою сборку 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