2010-12-06 5 views
0

Je suis nouveau à Hibernate 3 et je ne comprends pas la différence entre
1) * http: //sourceforge.net/projects/hibernate/files/hibernate3/ 2) * https: //repository.jboss.org/nexus/content/groups/public/
lorsqu'il s'agit de compiler des fichiers de tutoriels Hibernate.
Je suis le tutoriel Hibernate de * http: //docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/

Comme je comprends, il n'y a pas de setup.exe pour Hibernate 3. Je supposons qu'au lieu d'avoir setup.exe, j'ai besoin de définir des chemins de classes pour que mon Hibernate 3 soit installé. J'ai téléchargé la version d'Hibernate de la liste à * http: //sourceforge.net/projects/hibernate/files/hibernate3/. C'est plus de 140 Mo. Après avoir décompressé ce fichier de 140 Mo, je n'ai défini aucun chemin de classe.

J'ai téléchargé le code tutoriel à partir de * http: //docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/files/hibernate-tutorials.zip, décompressé et édité pom.xml de cette façon que ce tutoriel utiliserait deux référentiels comme
1) * http: //repo1.maven.org/maven2/
et
2) * https: //repository.jboss.org/nexus/content/groups/public/

Puis j'ai tapé mvn compile et build a été un succès!

Comment est-il possible que cette construction ait été réussie? Je n'ai défini aucun chemin de classe, ce qui signifie que Hibernate 3 (ce fichier de 140 Mo) n'était pas inclus dans le classpath de mon projet. De plus je ne comprends pas quels moyens inclure dans le classpath de mon projet? Est-ce que cela veut dire que sous Windows XP je définir des variables d'environnement comme:
1) path/to/hibernate3.jar
2) chemin/vers/lib/nécessaire/
3) chemin/vers/lib/JPA/
Lorsque j'ai ajouté ces trois chemins aux variables d'environnement, cela n'a rien changé - mvn compile a fonctionné de la même manière qu'avant. Ai-je mis ce chemin de classe dans le mauvais sens? De mon point de vue, il me semble qu'il n'est pas du tout nécessaire de télécharger Hibernate 3 (140 Mo) et tous les fichiers nécessaires à la construction de cette application hibernate (fichier tutoriel) ont été téléchargés avec succès depuis les dépôts.

Qu'est-ce que je ne comprends pas?

Merci d'avance!Hibernate release bundle et pom.xml: configuration environnement de développement

Répondre

0

Vous devez lire le fonctionnement de Maven. Il y a un excellent PDF gratuit appelé Better Builds with Maven qui expliquera tout en détail, mais voici un bref aperçu pour vous aider.

Maven est un système de construction

Il gère la façon de construire votre projet. Cela vient des détails de configuration que vous avez mis dans le fichier pom.xml. Vous avez défini les dépendances et Maven sait comment les trouver, soit en configurant ces emplacements, soit en s'appuyant sur ses propres emplacements par défaut. (C'est de là que vient le http://repo1.maven.org/maven2/). Maven construit dans les phases définies, avec chaque phase s'appuyant sur celui avant lui.Pour ceux-ci sont (simplifiées pour la présentation facile):

  1. Clean - effacer tous les travaux de compilation précédente (généralement « cible ») et recommencer
  2. Copier les ressources - tout copier dans le répertoire src/main/resources target/classes
  3. compile - tout compilable sous src/main/java pour cibler/classes
  4. test - Exécutez les tests sous src/test/java (en utilisant src/test/ressources si nécessaire)
  5. package - build l'artefact ciblé (JAR, WAR, EAR, etc.)
  6. Installer - mettre l'artefact dans le dépôt local (à partager avec d'autres projets locaux)
  7. Déploiement - mettre l'artefact dans le référentiel de l'équipe (à partager avec tout le monde)

De ce qui précède, il devrait être Décidez que le fait de spécifier Hibernate3 comme dépendance dans votre fichier pom.xml de Maven indiquera à Maven d'aller chercher dans son dépôt local les fichiers JAR nécessaires qui composent Hibernate. S'il ne peut pas les trouver, il apparaîtra dans le dépôt de l'équipe (si mentionné dans votre fichier .m2/settings.xml). Si ce n'est pas le cas, il les télécharge à partir de Maven central (http://repo1.maven.org/maven2/). Maven utilise le concept de dépendances transitives, ce qui signifie que votre projet dépend d'Hibernate, mais Hibernate dépend de CGLIB qui dépend, disons, d'ANTLR ou de quelque chose. Vous n'avez pas à réfléchir à cela, Maven s'occupe de vous apporter tous les JAR pertinents dont vous avez besoin pour faire fonctionner votre projet.

Questions connexes