Apache Ant 使用基础
2007-12-17 17:06
239 查看
1.环境
在正式开始编写脚本之前,我们需要下载安装相应的软件。
Eclipse:为了使 Ant 的开发更加简单,我们选择了 Eclipse3.1 作为开发环境。当然你可以使用任何你喜欢的文本编辑工具来开发你的 Ant。Eclipse 的最新版本可以在 http://eclipse.org/ 上下载。
Ant:Ant 是基于 Java 的编译工具,它就像 C/C++ 中的 make,但是没有 make 那样难用。Ant 的最新版本可以在 http://ant.apache.org/bindownload.cgi 上下载。如果你用 Eclipse 来开发 Ant,则不用去单独下载 Ant,因为在 Eclipse 中已经集成了 Ant。
2.1 基本语法
每个生成文件由单个
project元素组成,该元素又包含一个或多个
target元素。一个目标(target)是生成过程中已定义的一个步骤,它执行任意数量的操作,比如编译一组源文件。
顶级
project元素需要包含一个
default属性,如果在 Ant 被调用时没有指定目标,这个属性将指定要执行的目标。然后需要使用
target元素来定义该目标本身。下面是一个最基本的生成文件:
<?xml version="1.0"?>
<project default="init" name="Project Name">
<description>
A simple project introducing the use of descriptive tags in Ant build files.
</description>
<!-- XML comments can also be used -->
<target name="init" description="Initialize database">
<!-- perform initialization steps here -->
</target>
</project>
2.2 属性
Ant 中的属性 类似编程语言中的变量,它们都具有名称和值。然而与通常的变量不同,一经设置,Ant 中的属性就不可更改;它们是不可变的,就像 Java 语言中的
String对象。
<property name="metal" value="beryllium"/[/code]
为了在生成文件的其他部分引用这个属性,您会使用以下语法:
<property name="metal-database" value="${metal}.db"/>
Ant 中有许多预定义的属性,Java 环境设置用于运行 Ant 的所有系统属性,均可作为 Ant 属性使用,比如
${user.home}。
2.3 属性文件(properties)
在上面的例子中,所有的路径信息都是写在 build.xml 中。但是 Ant 脚本可能在不同的机器或者不同的系统上运行,也有可能一些值需要根据环境的不同而变化,在 Ant 中可以把所有这些可能变化的地方都放到一个配置文件中,然后在 Ant 脚本中引用这个配置文件就可以了,如下所示:
<project name="testBuild" default="compile" basedir=".">
<property file="build.properties"/>
<target name="init">
<mkdir dir="${dest.dir}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${dest.dir}"/>
<echo>Build into ${dest.dir}, successfully.</echo>
</target>
</project>
build.properties的内容:
dest.dir=c:/temp/dest/testProj
src.dir=c:/temp/src/testProj
2.4 依赖关系
生成一个项目一般需要许多步骤 —— 例如首先要编译源代码,然后将它打包为 Java 归档文件(Java Archive File,JAR)。这其中许多步骤都具有清楚定义的顺序。每个目标的定义依据的是在它在能够执行之前必须完成的其他所有目标。这是使用
target元素的
depends属性来实现的。
<target name="init"/>
<target name="preprocess" depends="init"/>
<target name="compile" depends="init,preprocess"/>
<target name="package" depends="compile"/>
2.5 命令行执行
-buildfile <file>参数(
-f <file>是其简写形式)。
2.6 综合
下面将把这些代码片断组合成一个完整的生成文件,它将编译
src目录下的所有源代码,将结果类文件放在
build目录下,然后把所有类文件打包到
dist目录中的一个 JAR 文件中。
<?xml version="1.0"?>
<project default="dist" name="Project Argon">
<description>A simple Java project</description>
<property name="srcDir" location="src"/>
<property name="buildDir" location="build"/>
<property name="distDir" location="dist"/>
<target name="init">
<tstamp/>
<mkdir dir="${buildDir}"/>
<mkdir dir="${distDir}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${srcDir}" destdir="${buildDir}"/>
</target>
<target name="dist" depends="compile">
<jar destfile="${distDir}/package-${DSTAMP}.jar" basedir="${buildDir}">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="package.Main"/>
</manifest>
</jar>
<jar destfile="${distDir}/package-src-${DSTAMP}.jar" basedir="${srcDir}"/>
</target>
<target name="clean">
<delete dir="${buildDir}"/>
<delete dir="${distDir}"/>
</target>
</project>
Buildfile: build.xml init: [mkdir] Created dir: E:/tutorial/javaexample/build [mkdir] Created dir: E:/tutorial/javaexample/dist compile: [javac] Compiling 10 source files to E:/tutorial/javaexample/build dist: [jar] Building jar: E:/tutorial/javaexample/dist/package-20031217.jar [jar] Building jar: E:/tutorial/javaexample/dist/package-src-20031217.jar BUILD SUCCESSFUL Total time: 5 second[/code]
注意 JAR 文件是根据当前日期来命名的,并且为应用程序的主类设置了一个清单条目,以便主类能够通过一个简单的命令
java -jar package-20031217.jar来直接运行。我们还创建了一个 JAR 文件,它仅包含项目的源代码。
2.7 创建和删除目录
创建: <mkdir dir="archive/metals/zinc"/>
删除: <delete dir="archive/metals/zinc"/>删除指定的目录连同它包含的所有文件以及子目录。
拷贝:
<copy file="src/Test.java" tofile="src/TestCopy.java"/>
2.8 模式匹配
<copy todir="archive">
<fileset dir="src">
<include name="*.java"/>
</fileset>
</copy>
如果我们想要使用一个模式,可以将
file属性替换为一个
fileset元素,如下所示:
fileset默认情况下包含指定
src目录下的所有文件,因此为了仅选择 Java 文件,我们对模式使用一个
include元素。类似地,我们可以对另一个模式添加一个
exclude元素,从而潜在地排除
include指定的匹配项。甚至可以指定多个
include和
exclude元素;这样将得到一组文件和目录,它们包含
include模式的所有匹配项的并集,但排除了
exclude模式的所有匹配项。
参考IBM ANT使用教程
IBM教程: https://www6.software.ibm.com/developerworks/cn/education/java/j-apant/tutorial/j-apant.zip
相关文章推荐
- Apache Ant的使用(1)——基础使用教程
- 【转载】Apache Ant的使用(1)——基础使用教程
- Apache Ant 基础使用小结
- Apache Ant 使用基础
- Fresco-加载图片基础[详细图解Fresco的使用]
- java语言基础(61)——java System类的使用
- 【机器人学的数学基础】(2)使用指数积公式对SCARA和拟人(肘)机械臂进行正运动学建模
- VBScript基础教程之七使用条件语句
- MS SQL入门基础:创建和使用约束
- 在安卓中使用Animation类实现基础动画效果
- java语言基础(46)——内部类概述及使用
- Delphi基础:回调函数及其使用
- Android基础之drawable标签的使用下
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
- 负载均衡基础(经常使用)算法
- C++大学基础教程_10_5_使用this指针
- Gradle for Android 使用之旅之gradle的基础
- iOS UI基础-10.0 QQ聊天布局之键盘及文本使用
- WINDOWS-基础:SafeArray的使用方法
- SVN--VisualSVN server 服务端和 TortoiseSVN客户端的基础使用