2009-06-04 5 views
3

J'essaye de courir org.hibernate.tool.ant.EnversHibernateToolTask ​​comme suggéré dans le rather terse guide to Envers (la 2ème ligne du tableau, la documentation a un lien vers un PDF). Voici ma tâche fourmi tordu afin qu'il trouve avec succès org.hibernate.tool.ant.EnversHibernateToolTask ​​et org.hibernate.tool.ant.HibernateToolTask; maintenant il ne peut pas trouver org.apache.tools.ant.Task et j'ai le sentiment de couler que je fais quelque chose de mal. Je n'ai jamais fait de tâches de fourmis personnalisées auparavant, donc il me manque probablement quelque chose de vraiment simple. Aucune suggestion? Je ne sais pas quoi mettre pour le classpath dans la tâche hibernatetool, dont je ne peux trouver aucune documentation pour au delà de rudimentary javadoc.pierres d'achoppement à gogo en essayant de courir org.hibernate.tool.ant.EnversHibernateToolTask ​​

modifier: ok, certains Qs pour essayer spécifiques pour arriver à ce coup par coup ...

  1. qui Jar est org.apache.tools.ant.Task censé être dans, et pourquoi ne peut fourmi trouver?
  2. où sont les documents sur l'utilisation de HibernateToolTask? (Je suppose que EnversHibernateToolTask ​​est censé fonctionner même)

mise à jour (2009-06-18): OK, j'ai finalement foiré mon courage pour essayer de faire des progrès sur cette question et fait quelques progrès. Je peux le faire fonctionner presque en faisant deux choses:

  1. course ant schemaexport de la ligne de commande, plutôt que de l'intérieur Eclipse, pour exécuter mon objectif schemaexport. (ant dans Eclipse ne peut pas trouver org/apache/tools/ant/Task et je ne sais pas comment définir le classpath Ant dans eclipse (distinct du classpath dans l'item taskdef; utilisez un classpath pour trouver sa propre classe damn quand il exécute une tâche personnalisée, c'est fou ... grrr ...)
  2. en vérifiant que mon classpath contient tous les pots que je prends pour acquis en les insérant dans mes JRE /lib/ext répertoire:

    • -Envers 1.2.0.ga-hibernate-3.3.jar
    • hibernate3.jar
    • mise en veille prolongée-tools.jar
    • slf4j-log4j12-1.5.6.jar
    • slf4j-api-1.5.6.jar
    • log4j-1.2.15.jar

maintenant obtenir un nouveau problème:

BUILD FAILED C: \ deka \ proj \ java \ test-base de données \ build.xml: 61: problèmes dans la création d'un Configurati sur pour l'APP. Vous êtes-vous souvenu d'ajouter hibernate EntityManager jars au chemin de classe ?

[[[[[crier]]]]]

mise à jour Il semble aussi que je avais besoin

  • mise en veille prolongée-entitymanager.jar
  • mise en veille prolongée-annotations.jar

et je TOUJOURS obtenir des erreurs classloader:

BUILD FAILED 
java.lang.NoClassDefFoundError: javax/persistence/PersistenceException 
     at java.lang.Class.getDeclaredConstructors0(Native Method) 
     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) 
     at java.lang.Class.getConstructor0(Class.java:2699) 
     at java.lang.Class.newInstance0(Class.java:326) 
     at java.lang.Class.newInstance(Class.java:308) 
     at org.hibernate.tool.ant.JPAConfigurationTask.createConfiguration(JPACo 
nfigurationTask.java:33) 
     at org.hibernate.tool.ant.ConfigurationTask.getConfiguration(Configurati 
onTask.java:54) 

Comment puis-je exécuter ceci sans avoir à utiliser un serveur J2EE?!?!?!?!?!? De quels autres fichiers JAR ai-je besoin? Je suis vraiment confus et frustré.

mise à jour (2009-06-23): Je enfin a obtenu une construction réussie. On dirait que vous avez besoin:

* envers-1.2.0.ga-hibernate-3.3.jar 
* hibernate3.jar 
* hibernate-tools.jar 
* slf4j-log4j12-1.5.6.jar 
* slf4j-api-1.5.6.jar 
* log4j-1.2.15.jar 
* dom4j-1.6.1.jar 
* hibernate-commons-annotations.ja 
* a JAR containing JTA classes (Sun doesn't have a JAR file but you can download the [class files][3] yourself and make a JAR file out of it) 
* a JAR containing JPA classes (I used toplink-essentials.jar from the glassfish project, per [this SO question][4]) 
* commons-logging-1.1.1.jar 
* freemarker.jar 

et fait en sorte d'utiliser

<annotationconfiguration configurationfile="${some_path}/hibernate.cfg.xml"/> 

au lieu de l'élément <jpaconfiguration> inclus dans la tâche de fourmi échantillon. Cela ne fonctionne toujours pas correctement, je ne comprends pas les tables d'envers. . :(

+0

Est-ce que ma réponse a aidé? – danieljimenez

Répondre

1

EnversHibernateToolTask ​​étend HibernateToolTask ​​Tout ce que je devais faire était la suivante:.

<taskdef name="hibernatetool" 
classname="org.hibernate.tool.ant.EnversHibernateToolTask" 
     classpath="envers-1.2.0.ga-hibernate-3.3.jar" /> 

Sinon, il serait utile de voir la sortie du fichier de fourmi que vous avez collé

+0

pas vraiment utile (la plupart de mes problèmes semblent être liés à la classe) mais cela m'a donné confiance que ce que je suis essayer de faire n'est pas impossible si nce quelqu'un semble l'avoir fait fonctionner. –

+0

Je ne suis pas sûr si vous pouvez entailler des chemins délimités par des points-virgules dans l'attribut classpath comme vous l'avez fait. Si vous pouvez le faire, je n'étais pas au courant. Sinon, si vous voyez mon autre réponse dans votre autre question (HBM2DDL), c'est vraiment la meilleure façon de procéder. – danieljimenez

-2

u pourrait besoin ejb3-persistence-1.0.2.GA.jar

Questions connexes