ant入门

来源:互联网 发布:小子安知壮士志哉翻译 编辑:程序博客网 时间:2024/06/15 15:01

一个简单的ant脚本:

<?xml version="1.0" encoding="UTF-8"?>
<project name="helloworld" default="run" basedir=".">
<property name="lib" value="lib"/>
<property name="src" value="src"/>
<property name="dest" value="bulid/classes"/>
<property name="hello_jar" value="hello1.jar"/>

<target name="init" depends="clean">
<mkdir dir="${dest}"/>
</target>


<target name="clean">
<delete dir="${dest}"></delete>
<delete dir="${lib}"></delete>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"></javac>
</target>
<target name="build" depends="compile">
<mkdir dir="${lib}"/>
<jar jarfile="${lib}/${hello_jar}" basedir="${dest}"></jar>
</target>
<target name="run" depends="build">
<java classname="test.HelloWorld" classpath="${lib}/${hello_jar}"></java>
</target>
</project>

逐个解析上诉代码中出现的知识点。

1.<project name="helloworld" default="run" basedir=".">

每个ant必须要有一个project,名字自定义,默认执行run操作,根目录为当前目录(即build.xml所在同级目录)。

2.<property name="lib" value="lib"/>

定义属性,名称为lib,值为lib

也可以这样写<property file="property.properties">

这样表示的意思为讲property.properties中所定义的属性全部引入使用。

3.<target name="init" depends="clean"><mkdir dir="${dest}"/></target>

target表示要执行的操作,名字为“init”,依赖于clean操作。

依赖的意思即是如果你想要执行本操作,需要确定依赖的操作已经完成。比如在这行代码中,只有clean这个target完成了才可以执行init这个操作。

如果多个target同时依赖于同一个target,只要这个target执行过一遍即可,不需要反复执行

4.<delete dir="${dest}"></delete>

删除dir,值为dest变量所对应的值

5.<javac srcdir="${src}" destdir="${dest}"></javac>

<javac>表示编译操作,编译目录为src文件夹,生成的编译文件在dest文件夹下(项目名/编译好的java文件)

6.<mkdir dir="${lib}"/><jar jarfile="${lib}/${hello_jar}" basedir="${dest}"></jar>

<mkdir>创建目录lib <jar>将basedir中的文件打包成为jar文件,名字为hello.jar,在lib目录下。解压jar文件,可以看到有两个文件夹metainf和test

test文件夹中有HelloWorld.java文件。

7.<java classname="test.HelloWorld" classpath="${lib}/${hello_jar}"></java>

<java>执行java文件,类名为test.HelloWorld.java classpath为lib/hello.jar  实际进行的操作是这样的,首先,根据classpath找到相应的环境,也就是hellojar包,然后根据classname进行查找,看是否有test.HelloWorld文件,有则执行相应的文件。。。。


0 0