2009-04-15 10 views
3

J'essaye d'exécuter les outils d'hibernation dans une construction de fourmis pour générer ddl de mes annotations JPA. Ant meurt sur l'étiquette taskdef. J'ai essayé avec Ant 1.7, 1.6.5, et 1.6 en vain. J'ai essayé à la fois dans l'éclipse et dehors. J'ai essayé d'inclure tous les jars hbn dans le chemin d'hibernate-tools et non. Notez que je basé mon dossier de construction sur ce post:Pourquoi j'obtiens l'erreur "Seuls les URI antlib peuvent être localisés depuis l'URI seul, pas l'URI" en essayant d'exécuter les outils hibernate dans mon build.xml

Hibernate JPA to DDL command line tools

Je suis en éclipse 3.4 avec WTP 3.0.1 et MyEclipse 7.1 sur Ubuntu 8.

build.xml:

<project name="generateddl" default="generate-ddl"> 

<path id="hibernate-tools"> 
    <pathelement location="../libraries/hibernate-tools/hibernate-tools.jar" /> 
    <pathelement location="../libraries/hibernate-tools/bsh-2.0b1.jar" /> 
    <pathelement location="../libraries/hibernate-tools/freemarker.jar" /> 
    <pathelement location="../libraries/jtds/jtds-1.2.2.jar" /> 
    <pathelement location="../libraries/hibernate-tools/jtidy-r8-20060801.jar" /> 

</path> 

<taskdef classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="hibernate-tools"/> 

<target name="generate-ddl" description="Export schema to DDL file"> 
<!-- compile model classes before running hibernatetool --> 

    <!-- task definition; project.class.path contains all necessary libs 
    <taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="project.class.path" /> 
    --> 

    <hibernatetool destdir="sql"> 

     <!-- check that directory exists --> 
     <jpaconfiguration persistenceunit="default" /> 

     <classpath> 

      <dirset dir="WebRoot/WEB-INF/classes"> 
       <include name="**/*"/> 
      </dirset> 
     </classpath> 

     <hbm2ddl outputfilename="schemaexport.sql" format="true" export="false" drop="true" /> 
    </hibernatetool> 
</target> 

Error message (ant -v): 

    Apache Ant version 1.7.0 compiled on December 13 2006 
Buildfile: /home/joe/workspace/bento/ant-generate-ddl.xml 
parsing buildfile /home/joe/workspace/bento/ant-generate-ddl.xml with URI = file:/home/joe/workspace/bento/ant-generate-ddl.xml 
Project base dir set to: /home/joe/workspace/bento 
[antlib:org.apache.tools.ant] Could not load definitions from resource org/apache/tools/ant/antlib.xml. It could not be found. 

BUILD FAILED 
/home/joe/workspace/bento/ant-generate-ddl.xml:12: Only antlib URIs can be located from the URI alone,not the URI 
    at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:216) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.Target.execute(Target.java:357) 
    at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140) 
    at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.parseBuildFile(InternalAntRunner.java:191) 
    at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:400) 
    at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137) 

Total time: 195 milliseconds 

Répondre

4

Selon le typedef task documentation (de WHIC h la taskdef task est une forme de) l'attribut name est requis si vous n'avez pas spécifié "les attributs de type de fichier ou de ressource".

Je ne suis pas sûr que si vous corrigez cela, votre problème sera résolu, mais ce serait bien si vous pouviez éliminer cela comme étant une cause potentielle.