35 votes

Comment utiliser Maven pour obtenir la dernière version d'Hibernate?

J'ai de la difficulté à obtenir la dernière version d'Hibernate via Maven dépendance. Il semble que la dernière que je peux récupérer à partir d'un dépôt central de Maven est 3.2.6.GA, et je suis intéressée à l'utilisation des 3.3.2.GA, qui est la dernière version indiqué sur la hibernate.org site. Quand je modifie mon hibernation de la dépendance de cette dernière version dans mon projet pom.xml j'obtiens l'erreur suivante lorsque je lance un Maven build:

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]

Une fois que je fais que je continue de recevoir des messages d'erreur indiquant que je dois ajouter une javassist de dépendance, alors que je dois mettre à jour mon hibernate validator de dépendance, qui doit également être installé localement, et à ce moment j'ai arrêté et a regardé autour pour voir si il ya une meilleure façon, peut-être de pointage Maven pour JBoss/Hibernate référentiel, etc. Cela semble vraiment être un mal de tête par rapport à d'autres grandes ouvertes cource paquets que j'utilise comme le Printemps ou JUnit -- quand il y a une nouvelle version tout ce que je fais est de mettre à jour le numéro de version dans l'élément de dépendance et il fonctionne, tout simplement.

J'ai essayé d'ajouter le dessous de dépôt de la déclaration dans ma pom.xml mais sans joie:

<repositories>
    <repository>
        <id>jboss</id>
        <url>http://repository.jboss.org/maven2</url>
    </repository>
</repositories>

J'ai cherché sur Google et n'ai pas trouvé beaucoup qui aide. Quelqu'un peut-il suggérer la plus simple manière d'utiliser les dernières versions du mode veille prolongée ou veille prolongée-core (3.3.2.GA), hibernate validator (3.1.0), et hibernate annotations (3.4.0)?

Merci d'avance pour votre aide!

--James

36voto

Robert Munteanu Points 31558

JBoss ont commencé la synchronisation de leurs propres pensions avec Maven central comme posté sur le blog de la communauté JBoss , par conséquent hibernate artefacts sont maintenant disponibles sans avoir besoin d'ajouter de JBoss référentiel à votre pom.xml ou gestionnaire de référentiel.

Résultat de la recherche pour mise en veille prolongée-core:

search result for hibernate-core

Pour ajouter Hibernate Core 3.6.3 à votre projet, il suffit d'ajouter le code suivant à votre pom:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.3.Final</version>
</dependency>

16voto

Rich Seller Points 46052

Vous rencontrez des problèmes, car org.hibernate:mise en veille prolongée:3.3.2.GA est un agrégateur POM utilisé pour construire le reste des modules, il n'est pas réellement un bocal. Il ressemble à un refactoring qui s'est passé après 3.2.7 et qui a jeté les gens. Pour la référence de cette entrée de blog d'indices sur les problèmes qu'ils ont eu de la promotion de Hibernate centrale et peut expliquer le changement.

Si vous regardez dans le JBoss référentiel, vous verrez que la veille prolongée modules pour 3.3.2.GA sont hébergés, ils sont hébergées en tant que personne artefacts, hibernate-core, hibernate-ehcache etc. Si votre dépôt de la déclaration est correcte, vous avez juste besoin d'affiner la dépendance des déclarations de prendre en compte le changement.

JBoss référentiel hôtes à hibernate annotations-3.4.0.GA, hibernate validator-3.1.0.GA, et hibernate-core-3.3.2.GA , entre autres. Essayez d'ajouter des artefacts spécifiques à votre POM et l'utilisation de JBoss dépôt que vous avez déjà déclaré.

Il y a aussi une mise en veille prolongée-dépendances pom qui fournit des dépendances transitives à la majorité des hibernate artefacts (y compris le cœur). Donc le plus simple serait de remplacer votre hibernate déclaration de dépendance avec hibernate-dépendances

Vos dépendances finirait comme ça...

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

Pour rendre votre vie plus simple, vous pouvez définir tous ces hibernate dépendances dans un projet de dire appelé (hibernate-tout), puis de référence à ce projet unique pour tous vos projets d'utilisation prolongée (bien sûr, ce serait bien si le hibernte équipe à condition que le projet de toute façon).

4voto

skaffman Points 197885

C'est frustrant, mais les nouvelles versions ne sont tout simplement pas là et ne le sont plus depuis longtemps. L'ironie est que les artefacts Hibernate ont des inter-dépendances assez complexes et des versions minimales bien documentées de ces dépendances, qui seraient idéalement représentées sous la forme d'un POM Maven. Au lieu de cela, nous devons télécharger les fichiers binaires nous-mêmes et essayer de les exprimer localement.

2voto

Vicky Points 2492

Vous pouvez utiliser la dépendance dans votre 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>
 

Ou reportez-vous ci-dessous à l'exemple d'Hibernate

http://www.technicalkeeda.com/hibernate-tutorial/maven-hibernate/how-to-create-hibernate-application-using-eclipse-and-maven

1voto

Sanne Points 2065

Cette question est obsolète depuis longtemps: toutes les versions d'Hibernate sont disponibles dans Maven central depuis des années.

Consultez www.hibernate.org pour les dernières coordonnées Maven (ne faites pas confiance aux suggestions de votre IDE).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X