Java 当Hibernate工具是Maven依赖项时,如何从Ant执行HibernateTooltTask

Java 当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=

我正在使用Hibernate工具在我的项目中生成pojo和dao。它目前正在Hibernate透视图中使用运行>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>
随后出现生成错误:

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>