我想使用ANT从Hibernate / JPA Annotation Classes生成SQL DDL脚本。
以下是我根据Hibernate Dev Docs URL编写的ANT脚本:http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/
<project name="yourmarketnet" default="all" basedir=".">
<target name="ddl_generation">
<!-- paths to required jars -->
<path location="web/WEB-INF/lib/hibernate-annotations.jar" />
<path location="web/WEB-INF/lib/ejb3-persistence.jar" />
<path location="web/WEB-INF/lib/hibernate-entitymanager.jar" />
<path location="web/WEB-INF/lib/javaassist.jar" />
<path location="web/WEB-INF/lib/hibernate-tools.jar"/>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask.jar">
<classpath path="${build.dir}/web/WEB-INF/lib/hibernate-tools.jar"/>
</taskdef>
<!-- output destination -->
<hibernatetool destdir="${build.dir}">
<!-- were the annotation beans files are located-->
<classpath>
<path location="${build.dir}/web/WEB-INF/classes/com/yourmarketnet/beans" />
</classpath>
<!-- list exporters here -->
<hbm2ddl
export="false"
update="false"
drop="true"
create="true"
outputfilename="myApps.ddl"
delimiter=";"
format="false"
haltonerror="true"/>
</hibernatetool>
</target>
</project>
我得到ERROR taskdef类org.hibernate.tool.ant.HibernateToolTask无法找到 使用类加载器AntClassLoader []
我还检查了hibernate-tools.jar是否实际上在路径中,它是(C:\ Users \ naim \ Documents \ NetBeansProjects \ yourmarketnet \ build \ web \ WEB-INF \ lib \ hibernate-tools。罐)
有人可以一步一步告诉我如何解决/调试此问题,谢谢。
答案 0 :(得分:1)
错误消息清楚地告诉您蚂蚁无法找到您的工具。当你宣布
时<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" >
<classpath path="${build.dir}/web/WEB-INF/lib"/>
</taskdef>
它已经错了,因为工具类不在目录中,而是在jar中。其次,您的意图似乎是使用${build.dir}
作为输出位置,那么为什么它会包含工具类?无论如何,你甚至没有定义这个目录。
所以如果你真的在hibernate-tools.jar
中拥有web/WEB-INF/lib
,那么你可能需要像
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" >
<classpath path="web/WEB-INF/lib/hibernate-tools.jar"/>
</taskdef>
请注意,它与您的项目目录相关。