DANCE WITH JAVA

开发出高质量的系统

常用链接

统计

积分与排名

好友之家

最新评论

ant教程(三) ant入门

一,构建ant环境
要使用ant首先要构建一个ant环境,步骤很简单:
1),安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是看这篇文章的人应该知道的)
2),下载ant 地址www.apache.org找一个你喜欢的版本,或者干脆最新的版本
3),解压ant 你得到的是一个压缩包,解压缩它,并把它放在一个尽量简单的目录,例如D:\ant-1.6虽然你不一 定要这么做,但这么做是有好处的。
4),设置ANT_HOME PATH中添加ANT_HOME目录下的bin目录
5),测试一下你的设置,开始-->运行-->cmd进入命令行-->键入 ant 回车,如果看到
Buildfile: build.xml does not exist!
Build failed
那么恭喜你你已经完成ant的设置
二,体验ant
就像每个语言都有HelloWorld一样,一个最简单的应用能让人感受一下Ant
1,首先你要知道你要干什么,我现在想做的事情是:
编写一些程序
编译它们
把它打包成jar包
把他们放在应该放置的地方
运行它们
这里为了简单起见只写一个程序,就是HelloWorld.java程序代码如下:
package test.ant;
public class HelloWorld{
 public static void main(String[] args){
  System.out.println("Hello world1");
 }
};

2,为了达到上边的目的,你可以手动的用javac 、copy 、jar、java来完成,但是考虑一下如果你有成百上千个类,在多次调试,部署的时候,一次次的javac 、copy、jar、java那将是一份辛苦的工作。现在看看ant怎么优雅的完成它们。

要运行ant需要有一个build.xml虽然不一定要叫这个名字,但是建议你这么做
下边就是一个完整的build.xml,然后我们来详细的解释每一句
<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="run" basedir=".">
 <property name="src" value="src"/>
 <property name="dest" value="classes"/>
 <property name="hello_jar" value="hello1.jar"/>
 <target name="init">
  <mkdir dir="${dest}"/>
 </target>
 <target name="compile" depends="init">
  <javac srcdir="${src}" destdir="${dest}"/>
 </target>
 <target name="build" depends="compile">
  <jar jarfile="${hello_jar}" basedir="${dest}"/>
 </target>
 <target name="run" depends="build">
  <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
 </target>
 <target name="clean">
  <delete dir="${dest}" />
  <delete file="${hello_jar}" />
 </target>
 <target name="rerun" depends="clean,run">
  <ant target="clean" />
  <ant target="run" />
 </target>
</project>

解释:
<?xml version="1.0" encoding="UTF-8" ?> 
build.xml中的第一句话,没有实际的意义

<project name="HelloWorld" default="run" basedir=".">
</project>
ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。

<property name="src" value="src"/>
类似程序中的变量,为什么这么做想一下变量的作用

<target name="compile" depends="init">
  <javac srcdir="${src}" destdir="${dest}"/>
</target>
把你想做的每一件事情写成一个target ,它有一个名字,depends是它所依赖的target,在执行这个target 例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行过则直接直接执行compile,如果没有则会先执行它依赖的target例如这里的init,然后在执行这个target

如我们的计划
编译:
<target name="compile" depends="init">
 <javac srcdir="${src}" destdir="${dest}"/>
</target>

做jar包:
<target name="build" depends="compile">
 <jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
运行:
<target name="run" depends="build">
 <java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
为了不用拷贝,我们可以在最开始定义好目标文件夹,这样ant直接把结果就放在目标文件夹中了
新建文件夹:
<target name="init">
 <mkdir dir="${dest}"/>
</target>
为了更多一点的功能体现,又加入了两个target
删除生成的文件
<target name="clean">
 <delete dir="${dest}" />
 <delete file="${hello_jar}" />
</target>
再次运行,这里显示了如何在一个target里边调用其他的target
<target name="rerun" depends="clean,run">
 <ant target="clean" />
 <ant target="run" />
</target>

好了,解释完成了,下边检验一下你的ant吧
新建一个src的文件夹,然后把HelloWorld.java按照包目录放进去
做好build.xml文件
在命令行下键入ant ,你会发现一个个任务都完成了。每次更改完代码只需要再次键入ant

有的时候我们可能并不想运行程序,只想执行这些步骤中的某一两个步骤,例如我只想重新部署而不想运行,键入
ant build

ant中的每一个任务都可以这样调用ant + target name
好了,这样一个简单的ant任务完成了。

posted on 2006-09-20 00:16 dreamstone 阅读(5409) 评论(8)  编辑  收藏 所属分类: 利器

评论

# re: ant教程(三) ant入门 2007-03-15 09:53 witti

非常好,通俗易懂,谢谢!  回复  更多评论   

# re: ant教程(三) ant入门 2007-07-11 13:39 郁闷

如果有在linux下如何操作,就更好了
  回复  更多评论   

# re: ant教程(三) ant入门 2007-07-11 16:39 Rita

好懂,挑个小错误,故名思意=》顾名思义  回复  更多评论   

# re: ant教程(三) ant入门 2007-07-12 23:34 slx

@郁闷
ant是跨系统的,操作河windows一样,不过就是配置ant_home的方法不一样
以redhat为例,配置到.bashrc下或者profile都可以。  回复  更多评论   

# re: ant教程(三) ant入门 2008-03-01 09:37 叮当

谢谢,很明了  回复  更多评论   

# re: ant教程(三) ant入门 2009-04-07 16:03 熊有成竹

很好 我喜欢  回复  更多评论   

# re: ant教程(三) ant入门 2010-01-21 14:52 ant新手

谢谢,简单易懂  回复  更多评论   

# re: ant教程(三) ant入门[未登录] 2012-06-13 10:26 king

嗯 很好!很详细  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: