<?xml version="1.0" encoding="utf-8"?>
<project name="利用工具開發Hibernate" default="help" basedir=".">
?<!-- ******? 環境設置,可以根據自己的實際配置自行更改 ***** -->
?<!-- ******? http://blog.csdn.net/fasttalk??? ***** -->
?<!-- ******? http://www.tkk7.com/asktalk? ***** -->
?<!-- 源文件目錄, 可以通過 項目->屬性->Java構建路徑 更改 -->
?<property name="src.dir" value="./src" />
?<!-- 輸出的class文件目錄,可以通過 項目->屬性->Java構建路徑 更改 -->
?<property name="class.dir" value="./bin" />
?<!-- 庫文件目錄? -->
?<property name="lib.dir" value="E:/workspace/java/hibernate3" />
?<!-- 定義類路徑 -->
?<path id="project.class.path">
??<fileset dir="${lib.dir}">
???<include name="*.jar"/>
??</fileset>
??<pathelement location="${class.dir}" />
?</path>
?<!-- ************************************************************** -->
?<!-- 使用說明 -->
?<!-- ************************************************************** -->
?<target name="help">
??<echo message="利用工具開發Hibernate" />
??<echo message="-----------------------------------" />
??<echo message="" />
??<echo message="提供以下任務:" />
??<echo message="" />
??<echo message="generate-hbm???? --> 運行HibernateDoclet,生成 Hibernate 類的映射文件" />
??<echo message="schemaexport???? --> 運行SchemaExport,利用 hbm.xml 文件生成數據表" />
??<echo message="" />
?</target>
?<!-- ************************************************************** -->
?<!-- Hbm2Java 任務 在hibernate3中無法實現 -->
?<!-- ************************************************************** -->
?<target name="generate-code" >
??<echo message="運行 Hbm2Java 任務, 利用 hbm.xml 文件生成Java類文件"/>
??<taskdef name="hbm2java"
?????? classname="org.hibernate.tool.instrument.InstrumentTask"
????????? classpathref="project.class.path">
??</taskdef>
??<hbm2java output="${src.dir}">
???<fileset dir="${src.dir}">
????<include name="**/*.hbm.xml"/>
???</fileset>
??</hbm2java>
?</target>
?<!-- ************************************************************** -->
?<!-- HibernateDoclet 任務 -->
?<!-- ************************************************************** -->
?<target name="generate-hbm" >
??<echo message="運行HibernateDoclet,生成 Hibernate 類的映射文件"/>
??<taskdef name="hibernatedoclet"
???classname="xdoclet.modules.hibernate.HibernateDocletTask"
???classpathref="project.class.path">
??</taskdef>
??????? <!--
??????? destdir???????? 輸出目錄;
??????? force,????????? 每次都強行執行,覆蓋原有文件;
??????? -->
??<hibernatedoclet destdir="${src.dir}"
???excludedtags="@version,@author,@todo" force="true" encoding="GBK"
???verbose="true">
???<fileset dir="${src.dir}">
????<include name="**/*.java"/>
???</fileset>
???<hibernate version="3.0" xmlencoding="utf-8" />
??</hibernatedoclet>
?</target>
?<!-- ************************************************************** -->
?<!-- SchemaExport 任務 -->
?<!-- ************************************************************** -->
?<target name="schemaexport">
??<echo message="運行SchemaExport,利用 hbm.xml 文件生成數據表"/>
??<taskdef name="schemaexport"
???classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
???classpathref="project.class.path">
??</taskdef>
????? <!--
????? quiet=true?????????????????????? 不要把腳本輸出到stdout;
????? drop=true??????????????????????? 只進行drop tables的步驟 ;
????? text=true??????????????????????? 不執行在數據庫中運行的步驟 ;
????? output=my_schema.ddl???????????? 把輸出的ddl腳本輸出到一個文件 ;
????? config=hibernate.cfg.xml???????? 從XML文件讀入Hibernate配置 ;
????? properties=hibernate.properties? 從文件讀入數據庫屬性 ;
????? format=true????????????????????? 把腳本中的SQL語句對齊和美化 ;
????? delimiter=x????????????????????? 為腳本設置行結束符
????? -->
??<schemaexport properties="src/hibernate.properties"
? quiet="no"?text="no" drop="no"? output="schema-export.sql" >
???????? <fileset dir="${src.dir}">
???????????? <include name="**/*.hbm.xml"/>?
???????? </fileset>
??</schemaexport>
?</target>
</project>