Как добавить задачу 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, может ли кто-нибудь мне помочь?

P.S. я действительно не знаю, что должно быть 'classpathref'. Я имею в виду, что я знаю, что он должен содержать путь к классам для спящего режима. Настоящая проблема в том, что я не знаю, как заставить работать 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, как я видел в документации по спящему режиму: http://docs.jboss.org/tools/2.1.0.Beta1/hibernatetools/html/ant.html#d0e2903


person Janov Byrnisson    schedule 28.02.2010    source источник


Ответы (4)


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

person omermuhammed    schedule 01.03.2010
comment
Я сделал это, а тем временем выяснил, как его использовать, но похоже, что у меня есть более специфическая проблема с гибернацией ... Я использую hibernate3, но задача ant, приведенная выше, предназначена для hibernate2.1, поскольку hibernate3 не есть класс 'net.sf.hibernate.tool.hbm2java.Hbm2JavaTask' .. есть другой обходной путь .. - person Janov Byrnisson; 01.03.2010

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

person Janov Byrnisson    schedule 01.03.2010

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

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

</target>
person Gord    schedule 15.11.2010

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

person Lefteris Laskaridis    schedule 15.11.2010