我正在使用Hibernate Tools在我的项目中生成pojo和dao。它目前正在使用Run>Hibernate Code Generation在Hibernate透视图中工作。。。然而,我想将其自动化,作为更复杂构建的一部分,我需要进行一些预处理,运行hibernate代码生成并进行一些后处理。我有一个Ant构建文件来做这件事,但我不知道如何引用Maven依赖项jar
<?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>
我收到这个警告:
taskdef class org.hibernate.tool.ant.HibernateToolTask cannot be found using the classloader AntClassLoader[]
随之而来的构建错误:
BUILD FAILED
/.../hibernate-gen.xml:16: taskdef class org.hibernate.tool.ant.HibernateToolTask cannot be found using the classloader AntClassLoader[]
如何引用Maven依赖项中的jar来调用org.hibernate.tool.ant.HHibernate ToolTask?
要自动生成pojo,可以在pom.xml文件中添加一个maven antrun插件。在这个插件中,在tasks部分,您可以直接调用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>
或者,您可以通过实际使用Hibernate工具任务生成pojo类来实现自动化。参考这个git项目从hbm生成pojos。