当Hibernate Tools是Maven依赖项时,如何从Ant执行Hibernate ToolTask



我正在使用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。

相关内容

  • 没有找到相关文章

最新更新