0

次のAntスクリプトを作成したHibernateツールのドキュメントによると、ANTを使用してHibernateアノテーションBeanからSQLDDLを生成しようとしています。

<?xml version="1.0" encoding="UTF-8"?>
<project name="yourmarketnet" default="all" basedir=".">
<property name="build.dir" value="C:/Users/naim/Documents/NetBeansProjects/yourmarketnet/build" />
<target name="ddl_generation">
<!-- paths to required jars  -->
<path location="web/WEB-INF/lib/hibernate-annotations.jar" />
<path location="web/WEB-INF/lib/ejb3-persistence.jar" />
<path location="web/WEB-INF/lib/hibernate-entitymanager.jar" />
<path location="web/WEB-INF/lib/javaassist.jar" />
<path location="web/WEB-INF/lib/hibernate-tools.jar"/>
<path location="web/WEB-INF/lib/hibernate-entitymanager.jar" />
<path location="web/WEB-INF/lib/jboss-archive-browsing.jar" />
<path location="web/WEB-INF/lib/javaassist.jar" />

<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask">
    </taskdef>
    <classpath>
    <!-- path of annotation beans -->
<path location="${build.dir}/web/WEB-INF/classes/com/yourmarketnet/beans" />
</classpath>
<!-- output destination -->
<hibernatetool destdir="${build.dir}">
<!-- were the annotation beans files are located-->
<!-- list exporters here -->
<hbm2ddl
export="false"
update="false"
drop="true"
create="true"
outputfilename="myApps.ddl"
delimiter=";"
format="false"
haltonerror="true"/>
</hibernatetool>
</target>
</project>

ただし、次のエラーが発生します。

taskdefクラスorg.hibernate.tool.ant.HibernateToolTask​​は、クラスローダーAntClassLoader[]を使用して見つかりません。

/ lib&フォルダーを確認しましたが、クラスパスhibernate-toolsが存在します。

4

1 に答える 1

1

私の ant スクリプトでは、通常、lib フォルダーへの絶対パスを使用して lib.dir という名前のプロパティを定義し、タグを使用してすべての jar をロードします。これは、何らかの理由で相対パスが常に問題になっているためです。あなたにとっても一見の価値があるかもしれません。

<property name="lib.dir" value="C:\path\to\project\WebContent\WEB-INF\lib"/>
<property name="jdk.home" value="C:\path\to\jdk" />
<path id="project.classpath">
    <fileset dir="${lib.dir}">
        <include name="*.jar"/>
    </fileset>
    <pathelement location="${jdk.home}/jre/javaws/javaws.jar"/>
    <pathelement location="${jdk.home}/jre/lib/charsets.jar"/>
    <pathelement location="${jdk.home}/jre/lib/ext/dnsns.jar"/>
    <pathelement location="${jdk.home}/jre/lib/ext/ldapsec.jar"/>
    <pathelement location="${jdk.home}/jre/lib/ext/localedata.jar"/>
    <pathelement location="${jdk.home}/jre/lib/ext/sunjce_provider.jar"/>
    <pathelement location="${jdk.home}/jre/lib/im/indicim.jar"/>
    <pathelement location="${jdk.home}/jre/lib/im/thaiim.jar"/>
    <pathelement location="${jdk.home}/jre/lib/jce.jar"/>
    <pathelement location="${jdk.home}/jre/lib/jsse.jar"/>
    <pathelement location="${jdk.home}/jre/lib/plugin.jar"/>
    <pathelement location="${jdk.home}/jre/lib/rt.jar"/>
    <pathelement location="${jdk.home}/jre/lib/sunrsasign.jar"/>
    <pathelement location="${jdk.home}/lib/dt.jar"/>
    <pathelement location="${jdk.home}/lib/htmlconverter.jar"/>
    <pathelement location="${jdk.home}/lib/tools.jar"/>
</path>
...
// Rest of your build file
...
于 2012-06-03T02:37:48.587 に答える