ANT入门使用

安装ant必须先配置java环境,这里不再赘述。

一、ant环境搭建

1、下载ant  

http://ant.apache.org/bindownload.cgi工具,类似java下载jdk

2、配置环境

基于win7环境,“计算机”点击右键“属性”,或者“控制面板\所有控制面板项\系统”,再点击“高级系统设置”,




注意这里的“D:\javaSoftware\apache-ant-1.9.4”是我下载的ant文件解压路径。

3、测试是否成功

二、编译项目

1、简单范例 

<?xml version="1.0" ?>
<project name ="propertyPro" default ="example">
<property name ="name" value ="philander"/>
	<property name ="age" value ="25"/>
	<target name ="example">
	<echo message ="name: ${name}, age: ${age}"/>
	</target>
</project>
一般名称都定义为build.xml。如果在当前目录下,且名称为build.xml则直接输入ant即可。

如果名称不为build.xml则需要些ant -buildfile tt.xml


注意如果涉及到路径一定要"/",例如basedir ="d:/ant"

2、ant元素

1)Project元素

Project元素是Ant文件的根元素,Ant构建文件中至少应该包含一个project元素,否则会发生错误。在每个project元素下面可以包含多个target元素。project的属性包括:

name : 项目名称

default:当调用时没有指定target时,此project的默认targe

basedir:用于指定基路径的位置,改属性没有指定时,使用Ant的构建文件的父目录作为基路径

例如:
< ?xml version="1.0" ?>
< project name ="antPro" default ="getBaseDir" basedir ="C:/ThinkInJavaCode">
<target name="getBaseDir">
<echo message="The base dir is: ${basedir}"/>
</target>
< /project>

从上例可以看出,在这里定义了default 属性的值为getBaseDir ,即当运行ant 命令时,如果没有指明待执行的target,则将执行默认的target--getBaseDir 。此外,还定义了basedir 属性的值为 "C:/ThinkInJavaCode" ,进入"C:/ThinkInJavaCode" 后运行ant 命令,得一下结果:
Buildfile: C:\ThinkInJavaCode\build.xml

sayBaseDir:
[echo] The base dir is: C:\ThinkInJavaCode


BUILD SUCCESSFUL
Total time: 0 seconds

 

2)target元素

target为Ant的基本执行单元,他可以包含一个或多个具体的任务。

target的属性有:

name: target的名称,这个属性在一个project中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target 。

depends:用来描述target间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。 Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target 。被依赖的 target 会先执行。

if:用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。

unless:该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。

description:该属性是关于 target 功能的简短描述和说明。


多个target可以存在相互依赖的关系。Ant会依照depends属性中target出现的顺序依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。

<target name="A"/>

<target name="B" depends="A"/>

<target name="C" depends="B"/>

<target name="D" depends="C,B,A"/>

假定我们要执行target D。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于B,B依赖于A,所以先执行A,然后B,然后C,最后D被执行。

一个target只能被执行一次,即时有多个target依赖于它。

 

3)property元素

property元素可看作变量或者参数的定义(即经常使用的变量),project 的属性可以通过 property 元素来设定,也可在 Ant 之外设定。例如<property name ="name" value ="philander"/>。若要在外部引入某文件,例如 build.properties 文件,可以通过如下内容将其引入<property file=” build.properties”/>。

 

Ant 提供了一些内置的属性,它能得到的系统属性的列表与 Java 文档中 System.getPropertis() 方法得到的属性一致,这些系统属性可参考 sun 网站的说明。同时, Ant 还提供了一些它自己的内置属性,如下:

basedir:project 基目录的绝对路径;

ant.file:buildfile的绝对路径,上例中ant.file值为C:\ThinkInJavaCode\build.xml;

ant.version:Ant 的版本信息,本文为1.8.1 ;

ant.project.name:当前指定的project的名字,即前文说到的project的name属性值;

ant.java.version:Ant 检测到的JDK版本,本文为 1.6 。

3、常用命令

复制单个文件:  <copy file="original.txt" tofile="copied.txt"/>

对文件目录进行复制:<copy todir="../dest_dir">  <fileset dir="src_dir"/>   </copy>

将文件复制到另外的目录:<copy file="source.txt" todir="../home/philander"/>

删除某个文件:<delete file="/home/photos/philander.jpg"/>

删除某个目录:<delete dir="/home/photos"/>

移动单个文件:<move file="sourcefile" tofile=”destfile”/>

echo 命令根据日志或监控器的级别输出信息<echo message="Hello,ANT" file="/home/philander/logs/ant.log" append="true">

三、构建部署java项目

1、jar项目

新建一个java project

目录为:  helloant    

|build    ||classes

|src       ||  com      |||HelloAnt.java

|build.xml    

HelloAnt.java源码:

package com;

public class HelloAnt {
	public static void main(String[] args) {
		System.out.println("ANT world,hello!");
	}
}
build.xml源码
<?xml version="1.0" ?>
<project name="javacTest" default="run" basedir=".">

	<target name="clean">
		<delete dir="${basedir}/build" />
	</target>

	<target name="compile" depends="clean">
		<mkdir dir="${basedir}/build/classes" />
		<javac srcdir="${basedir}/src" destdir="${basedir}/build/classes"
			includeantruntime="on" />
	</target>


	<target name="run" depends="compile">
		<java classname="com.HelloAnt">
			<classpath>
				<pathelement path="${basedir}/build/classes" />
			</classpath>
		</java>
	</target>


</project>


如果要生成jar包则添加(注意project的default一定要修改为jar否则不会执行到该位置):

	<target name="jar" depends="compile">
		<jar destfile="helloant.jar" basedir="${basedir}/build/classes">
			<manifest>
				<attribute name="Main-class" value="com.HelloAnt" />
			</manifest>
		</jar>
	</target>
通过   java -jar  helloant.jar 命令来执行.

2、web项目

新建一个web项目,然后新建一个build.xml。可以通过Eclipse自带的ant方式打包,或者通过命令行方式进行打包

build.xml源码:

<?xml version="1.0" encoding="UTF-8"?>
<project name="WebTest" default="war" basedir=".">
	<property name="classes" value="${basedir}/build/classes" />
	<property name="build" value="${basedir}/build" />
	<property name="lib" value="${basedir}/WebContent/WEB-INF/lib" />
	<!-- 删除build 路径 -->
	<target name="clean">
		<delete dir="${build}" />
	</target>

	<!-- 建立build/classes 路径,并编译class 文件到build/classes 路径下 -->
	<target name="compile" depends="clean">
		<mkdir dir="${classes}" />
		<javac srcdir="${basedir}/src" destdir="${classes}" />
	</target>

	<!-- 打war 包 -->
	<target name="war" depends="compile">
		<war destfile="${build}/webant.war" webxml="${basedir}/WebContent/WEB-INF/web.xml">
			<!-- 拷贝WebRoot 下除了WEB-INF 和META-INF 的两个文件夹 -->
			<fileset dir="${basedir}/WebContent" includes="**/*.jsp" />
			<!-- 拷贝lib 目录下的jar 包 -->
			<lib dir="${lib}" />
			<!-- 拷贝build/classes 下的class 文件 -->
			<classes dir="${classes}" />
		</war>
	</target>
</project>
jar包会自动添加到项目中,最后将webant.war放到tomcat的webapps目录下即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值