一个典型的构建文件(build.xml):
<?xml version="1.0" encoding="GBK"?>
<project name="利用工具开发Hibernate" default="help" basedir=".">
<!-- ****** 环境设置,可以根据自己的实际配置自行更改 ***** -->
<!-- 源文件目录, 可以通过 项目->属性->Java构建路径 更改 -->
<property name="src.dir" value="./src" />
<!-- 输出的class文件目录,可以通过 项目->属性->Java构建路径 更改 -->
<property name="class.dir" value="./bin" />
<!-- 库文件目录 -->
<property name="lib.dir" value="F:/workspace/Hibernate/lib" />
<!--上面这个property指出了一系列taskdef定义中classname的目录(这些classname所指的项都由F:/workspace/Hibernate/lib包含了)-->
<!-- 定义类路径 -->
<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-code --> 运行Hbm2Java,利用 hbm.xml 文件生成Java类文件" />
<echo message="generate-hbm --> 运行HibernateDoclet,生成 Hibernate 类的映射文件" />
<echo message="schemaexport --> 运行SchemaExport,利用 hbm.xml 文件生成数据表" />
<echo message="" />
</target>
<!-- ************************************************************** -->
<!-- Hbm2Java 任务 -->
<!-- ************************************************************** -->
<target name="generate-code" >
<echo message="运行 Hbm2Java 任务, 利用 hbm.xml 文件生成Java类文件"/>
<taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" 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>
<hibernatedoclet destdir="${src.dir}" excludedtags="@version,@author,@todo" force="true" encoding="GBK" verbose="true">
<fileset dir="${src.dir}">
<include name="**/*.java"/>
</fileset>
<hibernate version="2.0" xmlencoding="GBK" />
</hibernatedoclet>
</target>
<!-- ************************************************************** -->
<!-- SchemaExport 任务 -->
<!-- ************************************************************** -->
<target name="schemaexport">
<echo message="运行SchemaExport,利用 hbm.xml 文件生成数据表"/>
<taskdef name="schemaexport" classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="project.class.path">
</taskdef>
<schemaexport config="${src.dir}/hibernate.cfg.xml" quiet="no" text="no" drop="no" output="schema-export.sql">
</schemaexport>
</target>
</project>
<project>是构建文件的根目录.<echo>中的message定义了任务(task)被执行时打印在控制台的信息.以上构建文件的project 的name属性为"利用工具开发Hibernate",若用Eclipse进行开发 ,在使用Ant后,在Eclipse的使用界面上会出现"利用工具开发Hibernate"的操作条.另外这个构建文件中定义了4个target,在Eclipse中那个操作条下面会出现四个以这些target的name命名的操作,双击这些操作,就能自动执行这些操作所定义的具体动作.这便给了一个我们编写ANT构建文件的基本框架.(Eclipse主菜单上点击“窗口” ->“显示视图” ->点击“Ant”,这样就调出了Ant视图,在这个视图窗口的空白处,右击,在弹出菜单中选择“添加构建文件”,然后将HibernateBegin_2项目根目录下的“build.xml”文件载入即可。)
下面是我写的一个简单的ANT构建文件(细节还有错误,但是大致能够说明构建文件的结构)
<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="run java --> 运行java程序" />
<echo message="" />
</target>
<!-- ************************************************************** -->
<!-- 编译java任务 -->
<!-- ************************************************************** -->
<!-- ************************************************************** -->
<!-- 执行java任务 -->
<!-- ************************************************************** -->
<target name="run-java" >
<echo message="运行java程序"/>
<java classname="${class.dir}/"/>
</target>
<!--*****************************************************************-->
<!--将源文件拷到class.dir中-->
<target name="move the source code">
<echo message="将源文件移动字节码文件所在的目录中"/>
<copy file="${src.dir}/" todir="${class.dir}"/>
</target>
</project>