ant 命令

ant 命令

ant的构建文件

一. ant 的构建文件:

1. 目录结构:

antBook

antBook/src

antBook/build

antBook/build/classese

antBook/build/lib

1. antBook/build.xml

Xml代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <project name="simple Buildfile" default="compile" basedir=".">
  3. <!-- The directory containing source code-->
  4. <property name="src.dir" value="src"/>
  5. <!-- Temporary build directories -->
  6. <property name="build.dir" value="build"/>
  7. <property name="build.classes" value="${build.dir}/classes"/>
  8. <property name="build.lib" value="${build.dir}/lib"/>
  9. <!--compile target-->
  10. <target name="prepare">
  11. <mkdir dir="${build.dir}"/>
  12. <mkdir dir="${build.classes}"/>
  13. <mkdir dir="${build.lib}"/>
  14. </target>
  15. <target name="clean" description="removes all generated files.">
  16. <delete dir="${build.dir}"/>
  17. </target>
  18. <target name="compile" depends="prepare" description="编译文件">
  19. <javac srcdir="${src.dir}" destdir="${build.classes}"/>
  20. </target>
  21. <target name="jar" depends="compile" description="压缩成jar">
  22. <jar jarfile="${build.lib}/oreilly.jar" basedir="${build.classes}"
  23. excludes="**/*Test.class"/>
  24. </target>
  25. <target name="all" depends="clean,jar" description="cleans,compiles.."/>
  26. </project>

<?xml version="1.0" encoding="utf-8"?>

<project name="simple Buildfile" default="compile" basedir=".">

<!-- The directory containing source code-->

<property name="src.dir" value="src"/>

<!-- Temporary build directories -->

<property name="build.dir" value="build"/>

<property name="build.classes" value="${build.dir}/classes"/>

<property name="build.lib" value="${build.dir}/lib"/>

<!--compile target-->

<target name="prepare">

<mkdir dir="${build.dir}"/>

<mkdir dir="${build.classes}"/>

<mkdir dir="${build.lib}"/>

</target>

<target name="clean" description="removes all generated files.">

<delete dir="${build.dir}"/>

</target>

<target name="compile" depends="prepare" description="编译文件">

<javac srcdir="${src.dir}" destdir="${build.classes}"/>

</target>

<target name="jar" depends="compile" description="压缩成jar">

<jar jarfile="${build.lib}/oreilly.jar" basedir="${build.classes}"

excludes="**/*Test.class"/>

</target>

<target name="all" depends="clean,jar" description="cleans,compiles.."/>

</project>

2. ant运行时会显示每个所执行到的目标的名字,ant 先执行了prepare,其后才执行compile,这是因为compile是默认目标,而它对prepare目标存在一个依赖关系。

3. ant运行指定的构建文件时,命令如下:

ant -buildfile *.xml

ant -buildfile *.xml clean

4. 可以运行一条命令执行多个目标:

ant clean jar

5.可以输入ant all 来完成清理和重新构建, 因为all依赖于clean和 jar. 而jar进一步依赖compile,compile则依赖于prepare, 这样一条简单的命令ant all 既可以按适当的顺序完成所以目标。

6. 获得描述信息:

包含description属性的为主目标,没有描述的则为子目标。

从工程的基目录键入: ant -projecthelp 可获得如下输出信息:

Main targets:

all cleans,compiles..
clean removes all generated files.
compile 编译文件
jar 压缩成jar"
Default target: compile

7. 获得ant 命令行参数: 键入ant -help

-help:

显示描述ant 命令及其选项的帮助信息。

-projecthelp:

显示description属性中的文本信息

-version : 显示ant版本信息

-quiet :

抑制并非由构建文件中的echo任务所产生的大多数消息。

-verbose:

显示构建过程中每个操作的详细信息,此选项与-debug只能选择其一。

-debug

显示ANT和任务开发人员已经标志为调式消息的消息,此选项与-verbose只能选其一。

-emacs

对日志消息进行格式化,使他们能够很容易的由emacs的shell模式所解析; 也就是说,打印任务事件,但并不缩排,在期之前也没有[taskname].

-logger classname

指定一个类来处理ANT 的日志记录,所指定的类必须实现了org.apache.tools.ant.BuildLogger接口。

-listener classname

为ANT 声明一个监听类,并增加到其监听者列表中,在ANT与IDE或者其他JAVA程序集成时,此选项非常有用。

必须将所指定的监听类编写为可以处理ANT的构建消息接发。

-buildfile filename

指定ant需要处理的文件, 默认的构建文件为build.xml

-Dproperty=value

在命令行上定义一个特殊名-值对。

-find filename

指定ant应当处理的构建文件。 与-buildfile选项不同,如果所指定文件在当前目录中未找到,-file就要求ant在其父目录中再进行搜索,这种搜索会继续在其祖目录中进行,直到到达文件系统根目录为止, 在此如果文件还未找到则构建失败。

8. 构建文件的几点事项:

(1. 所有构建文件都要有<project >元素, 而且至少有一个<target>元素。

(2. 对于<project >元素的default属性并没有默认值。

(3. 构建文件并不一定要命名为build.xml,ant默认搜索该文件。

(4. 每个构建文件只有一个<project >元素。

推荐阅读