Как добавить задачу hbm2java в Ant в NetBeans

Я пытаюсь сгенерировать POJO из сопоставления XML-файлов. Я прочитал кое-что о добавлении задачи муравья, чтобы сделать это легко.

Я добавил этот xml ниже в build-impl.xml моего проекта в Netbeans, но ничего не происходит:

<target name="codegen">
     <echo>Zippzip</echo>
    <taskdef name="hbm2java"
             classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
             classpathref="javac.classpath"/>
    <hbm2java 
              output="generated/src/">
        <fileset dir="cat/model/">
            <include name="**/*.hbm.xml"/>
        </fileset>
    </hbm2java>
</target>

Я новичок в Netbeans, Ant и Hibernate, кто-нибудь может мне помочь?

PS Я действительно не знаю, каким должен быть "classpathref". Я имею в виду, я знаю, что он должен содержать classpath к распределению гибернации. Настоящая проблема в том, что я не знаю, как заставить задачу Ant работать.

Изменить: я понял, что скрипт выше не работает с Hibernate3.. У меня есть другой скрипт, но все еще не работает. Отображаемое сообщение об ошибке: Не удалось создать тип hibernatetool, так как класс класса org.hibernate.tool.ant.Hbm2JavaExporterTask не имеет совместимого конструктора; И сценарий:

<target name="codegen">
    <taskdef name="hibernatetool"
        classname="org.hibernate.tool.ant.Hbm2JavaExporterTask">
        <classpath refid="project.classpath" />
    </taskdef>

    <hibernatetool destdir="cat/model/">
        <configuration configurationfile="hibernate.cfg.xml"/>
        <hbm2java />
    </hibernatetool>
</target>

Это Hibernate3-совместимый, как я видел в документах Hibernate: http://docs.jboss.org/tools/2.1.0.Beta1/hibernatetools/html/ant.html

4 ответа

Решение

Я ничего не знаю о hbm2java, но после добавления задачи, как в коде выше, вам нужно добавить jar-файлы, связанные с этим, в Ant. Это делается путем копирования файла JAR Inton $ANT_HOME/lib каталог. Ты сделал это?

Выяснилось: следует заменить 'org.hibernate.tool.ant.Hbm2JavaExporterTask' на 'org.hibernate.tool.ant.HibernateToolTask'

Вот как я это использую.

    <hibernatetool destdir="${src.java.dir}">
        <configuration>
            <fileset dir="${src.java.dir}">
                <include name="**/*.hbm.xml"/>
            </fileset>
        </configuration>
        <hbm2java/> <!-- Generate POJO source -->
    </hibernatetool>

</target>

Рассматривали ли вы использовать аннотации jpa вместо xml?

Другие вопросы по тегам