1. Ant简介
Ant是一种基于Java的build工具。ANT本身是一个基于JAVA的与平台无关的流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。脚本的格式是基于XML的,大多根据工程根目录中的build.xml文件。
2. 构建一个简单的Hibernate应用程序
2.1 monkeys应用的目录结构
示例工程为monkeys,其目录结构如图2-1所示:
图2-1 monkeys工程目录结构
其中,
- src用于存放java源文件、配置文件。
- lib目录包含Mysql驱动程序的JAR文件,及相关的Jar文件。
- schema包含构建数据库schema的.sql文件。(此文件夹不是必须的)
- build.xml使用于自动构建工程的Ant的配置文件(或者说是ANT的工程文件)。
monkeys工程的主要内容:
图2-2 monkeys的主要内容
2.2 monkeys的build.xml文件
该应用中我们用ANT工具创建calsses目录,并把src子目录下的hibernate.properties、Monkey.hbm.xml配置文件及编译后的.class文件复制到classes目录中。
build.xml主要内容如下:
<?xml version="1.0"?>
<project name="Learning Hibernate" default="prepare" basedir=".">
<!--设置一些重要工程目录的属性 -->
<property name="source.root" value="src"/>
<property name="class.root" value="classes"/>
<property name="lib.dir" value="lib"/>
<!--设置编译、执行所需要的类路径 -->
<path id="project.class.path">
<!-- Include our own classes, of course -->
<pathelement location="${class.root}" />
<!-- Include jars in the project library directory -->
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>
<!--创建运行子目录,并将资源拷贝到其中 -->
<target name="prepare" description="Sets up build structures">
<delete dir="${class.root}"/>
<mkdir dir="${class.root}"/>
<!--拷贝配置文件到刚创建的目录中 -->
<copy todir="${class.root}" >
<fileset dir="${source.root}" >
<include name="**/*.properties"/>
<include name="**/*.hbm.xml"/>
<include name="**/*.xml"/>
</fileset>
</copy>
</target>
<!-- 编译java工程 -->
<target name="compile" depends="prepare"
description="Compiles all Java classes">
<javac srcdir="${source.root}"
destdir="${class.root}"
debug="on"
optimize="off"
deprecation="on">
<classpath refid="project.class.path"/>
</javac>
</target>
<!--运行java工程-->
<target name="run" description="Run a Hibernate sample"
depends="compile" >
<java classname="mypack.BusinessService" fork="true">
<classpath refid="project.class.path"/>
</java>
</target>
<target name="rungui" description="Run a Hibernate sample"
depends="compile" >
<java classname="mypack.MonkeyGui" fork="true">
<classpath refid="project.class.path"/>
</java>
</target>
</project>
该文件定义了3个属性:”source.root“、“ class.root ”和lib.dir;3个target:prepare target、compile target、runtarget。
其中run>compile->prepare。“->"表示依赖关系,即run的执行要依赖于compile,而compile执行依赖与prepare。由此可见,build.xml文件规定了一系列的操作及他们的先后顺序,通过它我们就可以实现用简单的几个命令来控制工程的自动化的部署、编译、运行等一系列的复杂操作。
2.3 运行monkeys工程
(1)启动Mysql,并在其中运行schema/sampledb.sql脚本。
(2)DOS中进入monkeys目录,然后运行如下命令:
ant run
或者
ant rungui
在控制台将会输出运行过程及结果。
最后的monkeys中的内容如图2-3所示
图2-3 最终的monkeys中的内容