java服务器浅入浅出之ant

一、ant的构建文件是用xml编写的,默认为build.xml。

eg:

 

<?xml version="1.0"?>
<project name="helloWord">
	<target name="sayHelloWord">
		<echo message="Hello word!"/>
	</target>
</project>

运行效果:

 

sayHelloWord为要执行的任务(target)。

build.xml是ant默认寻找的配置文件,当你的文件名不是它的时候,需要这样执行。

eg:

ant -f hello.xml sayHelloWord
<pre name="code" class="plain">ant -file hello.xml sayHelloWord
 
<pre name="code" class="plain">ant -buildfile hello.xml sayHelloWord
 

(word拼错是个人习惯。。。)

 

二、ant构建文件有几个常用关键元素,project、target、property、task。

1.project是ant的根元素,每个xml至少包含一个project。每个project下可包含多个他target元素。

project元素有一些常用是属性:

(1)name  指定project的名字

(2)default 指定默认执行的target的名称。

(3)basedir 指定基准路径的位置,若没有指定,则使用xml的目录作为基准目录。

2.target是ant的具体执行单元,包含一个或者多个可执行的任务。多个人物之间可以有相互依赖关系。

target也有一些属性:

(1)name 指定target的名字,在一个project中是唯一的。

(2)depends用于描述target之间的依赖关系,如果有多个依赖关系需要用逗号隔开,ant将根据出现顺序来一次执行性target。被依赖的target先执行。

(3)if 用于验证指定的属性是否存在,若不存在,则target不能被执行。

(4)unless 与if相反,若不存在,则target可以被执行。

(5)description 是关于target功能的简单描述。

eg:

 

<?xml version="1.0"?>
<project name="helloWord" default="sayHelloWord">
	<target name="sayHelloWord" depends="condition">
		<echo message="Hello word!"/>
	</target>
	<target name="condition">
		<echo message="this is condition"/>
	</target>
</project>

执行结果:

 


由于sayHelloWord依赖于condition,所以执行sayHelloWord前会先执行condition。

3.property  可以看做是参数的定义。project的属性的定义可以用property定义,也可以在ant外部定义。若要引用外部文件,例如:param.property,则这样引入:<property file="param.property"/>

property内设置的‘参数’,可以通过将‘参数’名放在“${”和“}”之间来引用它的值。

eg:

 

<?xml version="1.0"?>
<project name="helloWord" default="say">
	<property name="name" value="end"/>
	<property name="age" value="24"/>
	<target name="say">
		<echo message="Hello word! My name is ${name}, i am 
<span style="white-space:pre">		</span>${age} years old."/>
	</target>

</project>

运行结果:

 

三、ant常用任务

1.copy

eg:

<copy file="hello.xml" tofile="E:/hello1.xml"/>
<copy todir="E:\testand">
<span style="white-space:pre">	</span><fileset dir="../testant"/>
</copy>

2.delete 

eg:

<delete file="test.txt"/>
<delete dir="photo"/>

3.mkdir

eg:

<mkdir dir="newdir"/>

4.move

eg:

<move file="orifile" tofile="destfile"/>
<move file="orifile" todir="destdir"/>
<move todir="newdir">
<span style="white-space:pre">	</span><fileset dir="olddir">
</move>

5.echo

eg:

<target name="say">
	<echo message="test message" file="1.txt" append="true"/>
</target>

四、ant实现java项目的构建和部署

1.用ant的javac任务编译Java程序。

eg:

 

<?xml version="1.0"?>
<project name="javactst" default="compile" basedir=".">

<target name="clean">
<delete dir="classes"/>
</target>

<target name="compile">
<mkdir dir="classes"/>
<javac srcdir="src" destdir="classes"/>
</target>
</project>

每次编译前,删除掉classes这个目标目录。然后再编译src内的源码,将编译好的class放到destdir中。

 

2.java任务运行java程序。

eg:

 

<?xml version="1.0"?>
<project name="javactst" default="run" basedir=".">

<target name="clean">
<delete dir="classes"/>
</target>

<target name="compile" depends="clean">
<mkdir dir="classes"/>
<javac srcdir="src" destdir="classes"/>
</target>

<target name="run" depends="compile">
<java classname="Hello">
<classpath>
<pathelement path="classes"/>
</classpath>
</java>
</target>
</project>

运行编译好的Hello这个类。

 

3.用ant的jar任务声称jar文件。

 

<?xml version="1.0"?>
<project name="javactst" default="jar" basedir=".">

<target name="clean">
<delete dir="classes"/>
</target>

<target name="compile" depends="clean">
<mkdir dir="classes"/>
<javac srcdir="src" destdir="classes"/>
</target>

<target name="jar" depends="compile">
<jar destfile="hello.jar" basedir="classes">
<manifest>
<attribute name="Main-class" value="Hello"/>
</manifest>
</jar>
</target>
</project>

将编译好的工程打包成jar文件。

 



 

 

 








 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值