Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。
Ant运行时需要一个XML文件, Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。
由于Ant构建文件 是XML格式的文答绝件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和 *** 作简单的特点,它很容易集成到一些开发环 境中去。
扩展资料
Ant的depends属性指定了target的执行顺序。Ant会依照depends属性中清戚姿target出现顺序依次执行 每个target。
在执行之前,首先需要执行它所依赖的仔亏target。程序中的名为run的target的 depends属性compile,而名为compile的target的depends属性是prepare,所以这几个target执 行的顺序是prepare->compile->run。
一个target只能被执行一次,即使有多个target依赖于它。如果没有if或unless属性target总 会被执行。
参考资料来源:百度百科-apache ant
下载安判核装下载
需要设置的环境变量
ANT_HOME ant的安装目录
JAVA_HOME jdk的安装目录
PATH 把%ANT_HOME%\bin目录加到path变量 以便于从命令行下直接运行ant
假定ant解压在c \ant jdk装d \j sdk
则在命令行下执行以下命令
set ANT_HOME=c:\antset JAVA_HOME=D:\j sdk set PATH=%PATH%c:\ant\bin
工程文件目录结构
一个ant 工程目录结构
C \workspace\ant test 工程主目录
\src 源程序目录
\build\classes 编译后的 class 文件目录
\lib 开发工程所需要的类库目录 比如开发数据库时所需要的 jdbc lib(这次没用到)
\jar 打包好的 jar 程序目录(这次没用到)
\build xml 工程配置文件\build propertiees 工程资源文件
建立工程描述文件和建立工程资源文件
建立工程描述文件build xml
<?xml version= ?><project default= main basedir= > <echo message= pulling in property files /> <property file= build properties /> <target name= init > <echo message= init delete the old class files and create the new folds /> <delete dir= ${classpath} /> <mkdir dir= ${classpath} /> </target> <target name= pile depends= init > <echo message= pile the java source files /> 缓余 <javac srcdir= src\hello\ant destdir= ${classpath} /> </target> <target name= main depends= pile > <echo message= calling java to run this java project /> <java classname= hello ant HelloAnt > <classpath> <pathelement path= ${classpath} /> </classpath> </java> </target></project>
建立工程资源文件 build properties
文件内容是下面一行内容
classpath=build\\classes
建立java源文件 hello ant HelloAnt java
package hello antpublic class HelloAnt { public static void main(String[] args) { System out println( hello ant the first time using ant it is great ) }}
扰冲滚 编译
lishixinzhi/Article/program/Java/ky/201311/28515用 Eclipse3.1 来创建 Ant 脚本
如果你使用 Eclipse 来编写 Ant,建议使用 Eclipse 3.1 以后的版本。除了以前 Ant 编辑器提供的语法高亮,提示语法错误等功能外,Eclipse3.1 版本增加了许多新的功能。比如:脚本代码的折叠;快速定位某属性或者目标(target)段的定义;在同一 builder 文件中重构属性名和目标名(快捷方式 Alt + Shift +R);调试 Ant 脚本等。
下面我们就来看看 Eclipse 3.1 中对 Ant 的支持
打开“File”-“New”-“Project”-“Simple”-“Project”,点击“Next”,输入工程名“Ant”,然后点击直到“Finish”
在新建的 Ant 工程中,新建 Test.xml,并且拷贝下面的脚本。该段脚本的内容就不做介绍了,我们主要看 Eclipse 提供了哪些功能。注意这时候打开的并不是 Ant 编辑器,将内容拷贝进去之后,关掉打开的“Test.xml”,然后再重新打开它,这样 Eclipse 就会用 Ant 编辑器打开它,并且也语法高亮了。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="init" basedir=".">
<property name="test" value="test"/>
<target name="init">
<echo>${test}</echo>
</target>
</project>
自动提示和代码折叠功能。如果是 Ant 内置的命令或者前面已经定义的变量,编辑器会自动提示;编辑器右边的加 / 减号可以代码折叠。如下所示:
快速定位目标(target)或者定义变量处。在上图中,将鼠标移至 default=”init” 中的 init 上之后,按下 ctrl 键,鼠标变成手状,单击就可以定位到定义该目标的地方
快速重构目标名或者属性名。选中目标 / 属性名,按下 Alt + Shift + R,然后键入你要修改后的值,所有引用到的地方都会随之改动。如下图所示,选中 init 后,按下快捷键,改成 initial:
调试 Ant 脚本。在标签“<target name=..”的左边设置一断点,然后在野稿碰编辑器中右击,出现的菜单中选“Debug As”-“Ant Build”,出现后的窗口与调试 Java 程序的界面差不多。
这是调试窗口,这里可以选择单步跟进、跳出等:
下面是运行时变量窗口。可以看到 test 变量颂谈的值是“test”:
运行结果窗口:
由此可见,如果使用好 Eclipse Ant 编辑器所提供强大的功能的话能大大提高写 Ant 脚本的效率。
回页首
Ant 中使用 property(属性)文件
刚开始写 Ant 的初学者可能会把所有的信息都放在 build.xml 中,下面就是这样的一个例子。
<project name="testBuild" default="compile" basedir=".">
<target name="init">
<mkdir dir="c:/temp/dest/testProj" />
</target>
<target name="compile" depends="init">
<javac srcdir="c:/temp/src/testProj" destdir="c:/temp/dest/testProj "/>
<echo>Build into c:/temp/dest/testProj, successfully.</echo>
</target>
</project>
在上面的例子中,所有的路径信息都是写在 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
如果想在 Ant 脚本中引用值的话,只需用 $ 符号开头,在一对"{}"中写入要引用的键值。如上例中,需要引用编译的目标路径用"${dest.dir}"。
回页首
使用 Ant 任务从 CVS 中检出(check out)源代码,并编译打包
Ant 中提供了 cvs 任务(Task)可以从 CVS 服务器中检出资源(注意:在使用 Ant 的 cvs 任务之前,请先将 cvs.exe 下载到你的机器,并且将它添加到你本地的 PATH 环境变量中,然后重新启动 Eclipse。否则在执行下面脚本的时候就会得到 error=2 的错误)。cvs 的可选用属性很多,在这里介绍经常使用到的几个属性。从 CVS 中检出资源一般需要指定:
CVS 所在的服务器地址:目标 CVS 服务器地址
用户名:登录该 CVS 服务器你指定的用户名
密码:登录该 CVS 服务器需要的密码
库路径(Repository Path):服务器中的库路径
模块名:当前需要检出的模块名,一般都是以工程的名字作为模块名
标签名:需要从 CVS 中检出哪个标签
在介绍使用 Ant 的 cvs 之前,先说一下本地的目录结构。在 C 盘的 temp 目录下,分别有四个目录,如下所示:
build 目录:放编译后的类以及资源文件
dist 目录:放生成的 jar 文件或者 war 文件
lib 目录:放在编译过程中需要用到的 jar 文件
src 目录:放从 cvs 中检出的源文件(包括 JSP 等)
在 Ant 中这样写就可以从中检出资源:
<cvs cvsRoot=":pserver:username:pwd@cvs.server:/home/testPath"
package="TestProj" dest=" c:/temp/src/testProj " failonerror="true" />
这段脚本片断的意思就是从叫"cvs.server"的服务器中,用用户名是 username、密码为 pwd 的用户检出在库路径是 /home/testPath 下的 TestProj 模块(项目),检出后的资源放入本地目录 c:/temp/src/testProj 中。在上面这段脚本中,可以看到有很多值可能会根据不同的环境或者用户随之改变的,比如用户名和密码等;而且从脚本的重复可利用性来说,需要把有些值抽出来放到配置文件中,如服务器的地址和库路径等。因此把这些可能需要更改的地方放到 property 文件中,效果会更好。改完后的完整 Ant 脚本如下所示:
<?xml version="1.0"?>
<project name="testWeb" default="checkout" basedir=".">
<target name="checkout">
<property file="TestWeb.properties" />
<cvs cvsRoot="${cvs.root}" package="${cvs.projectName}"
tag="${cvs.tag}" dest="${src.dir}" failonerror="true" />
</target>
</project>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)