Java 当Hibernate工具是Maven依赖项时,如何从Ant执行HibernateTooltTask
我正在使用Hibernate工具在我的项目中生成pojo和dao。它目前正在Hibernate透视图中使用运行>Hibernate代码生成。。。 但是,我想将其自动化,作为更复杂构建的一部分,在这个构建中,我需要进行一些预处理,运行hibernate代码生成并进行一些后处理。 我有一个Ant构建文件来完成这项工作,但我不知道如何引用Maven依赖项jarJava 当Hibernate工具是Maven依赖项时,如何从Ant执行HibernateTooltTask,java,eclipse,maven,ant,hibernate-tools,Java,Eclipse,Maven,Ant,Hibernate Tools,我正在使用Hibernate工具在我的项目中生成pojo和dao。它目前正在Hibernate透视图中使用运行>Hibernate代码生成。。。 但是,我想将其自动化,作为更复杂构建的一部分,在这个构建中,我需要进行一些预处理,运行hibernate代码生成并进行一些后处理。 我有一个Ant构建文件来完成这项工作,但我不知道如何引用Maven依赖项jar <?xml version="1.0" ?> <!DOCTYPE project> <project name=
<?xml version="1.0" ?>
<!DOCTYPE project>
<project name="Hibernate Tools hbm2java" default="gensrc">
<path id="tools">
<!--
Here {
-->
<path location="lib/hibernate-tools-4.3.1.CR1.jar"/>
<!-- more dependencies... -->
<!--
}
-->
...
</path>
<taskdef name="gen-src" classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="tools" />
<target name="gensrc">
...
</target>
</project>
随后出现生成错误:
BUILD FAILED
/.../hibernate-gen.xml:16: taskdef class org.hibernate.tool.ant.HibernateToolTask cannot be found using the classloader AntClassLoader[]
如何从Maven dependency中引用jar来调用org.hibernate.tool.ant.hibernateTooltTask?要自动生成pojo,可以将Maven antrun插件添加到pom.xml文件中。在这个插件中,在任务部分,您可以直接调用Ant任务,如您所述
<build>
...
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="maven.dependency.classpath"/>
<hbm2java output="src/generated">
<fileset dir="src/hibernate">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
从hbm生成POJO
<build>
...
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<taskdef name="hibernatetool"
classname="org.hibernate.tool.ant.HibernateToolTask"
classpathref="maven.dependency.classpath"/>
<hbm2java output="src/generated">
<fileset dir="src/hibernate">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>