随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
在前面了解了ant工具的一些概念,下面进行简单的使用。
ant是一种构建工具,与make类似,但它是由java实现的,跨平台。可以到apache官网:Welcome to The Apache Software Foundation!进行下载。配置环境变量很简单,和配置jdk之类的差不多,把下下来的ant解压到某个目录,让环境变量指向bin目录即可。
下面给了一个非常简单的例子,编写一个简单程序,编译它们,然后打成jar包,并运行:
HelloWorld.java:
package test.ant;
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello world1");
}
}
执行ant需要一个build.xml配置文件,它描述了ant需要执行的程序,具体操作等所有信息,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" ?>,这个就不多说了,版本,编码见得太多了。
<project name="HelloWorld" default="run" basedir=".">
</project>
name是你给它取的名字,basedir代码工作的根目录,.代表当前目录.default代表默认要做的事情,即执行哪个操作。
<property name="src" value="src"/> 类似变量。name定义变量的名称,value定义变量的值。
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
你要执行的一个操作叫做一个target,name是定义名称,depends是它执行所依赖的target,比如这里,在执行compile之前,会先检查init是否曾经被执行,如果执行过就直接执行compile,否则先执行它依赖的init target,然后在执行compile target。
上面每个target从名字可以看出它们分别的作用:
新建文件夹:
<target name="init">
<mkdir dir="${dest}"/>
</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>
删除生成的文件
<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>
好,这个简单的build文件就算完成了,然后新建一个src文件夹,把源程序按照这里的test.ant包目录放进src里面。把build文件放到与src同一目录下,在命令行定位到build.xml目录下,键入ant命令即可,如果只想单独执行某个target,键入 ant target name,如:ant build.
ant也并没有IDE工具好用,但它也有其特点:
在服务器部署的时候,因为它小巧,方便,只需要一个build.xml,到任何一台服务器只需简单修改一些设定和目录就可以运行。
在linux或者unix部署的时候,就发挥作用了。
当有些维护人员不懂编程时,你只需给它build文件,让他执行简单命令即可。