您的位置:首页 > 编程语言 > Java开发

ant 构建java项目 从其他博客复制过来备存

2014-02-12 16:40 369 查看
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。

一. 安装与配置

下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。

添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0。

安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息,如下图所示: <?xml version="1.0"?> <project name="helloWorld"> <target name="sayHelloWorld"> <echo message="Hello,Amigo"/> </target> </project>
读者可以进入E盘,然后运行ant sayHelloWorld,可以看到如下的运行结果: <?xml version="1.0"?> <project name="projectStudy" default="sayBaseDir" basedir="E:"apache-ant-1.7.0"> <target name="sayBaseDir"> <echo message="The base dir is: ${basedir}"/> </target> </project>
从上面的内容我们可以看出,在这里定义了default属性的值为sayBaseDir,即当运行ant命令时,若未指明执行的target时,默认执行的target的sayBaseDir,同时还定义了basedir属性的值为E:"apache-ant-1.7.0,进入E盘后运行ant命令,可看到运行的结果,如下图所示: <?xml version="1.0"?> <project name="targetStudy"> <target name="targetA" if="ant.java.version"> <echo message="Java Version: ${ant.java.version}"/> </target> <target name="targetB" depends="targetA" unless="amigo"> <description> a depend example! </description> <echo message="The base dir is: ${basedir}"/> </target> </project>
进入E盘后运行ant targetB,可看到如下图所示的运行结果: <?xml version="1.0"?> <project name="propertyStudy" default="example"> <property name="name" value="amigo"/> <property name="age" value="25"/> <target name="example"> <echo message="name: ${name}, age: ${age}"/> </target> </project>
该例的运行结果如下图所示: <?xml version="1.0"?> <project name="javacTest"default="compile" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> </project>
运行该build.xml文件,可在工程中看到新增了build/classes目录,并在该目录中生成了编译后的HelloWorld.class文件。

2. 使用Ant的java任务运行Java程序

Ant中可以使用java任务实现运行Java程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml文件的内容如下:

<?xml version="1.0"?> <project name="javaTest" default="jar" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="run" depends="compile"> <java classname="HelloWorld"> <classpath> <pathelement path="build/classes"/> </classpath> </java> </target> </project>
运行该build.xml文件,可在控制台看到HelloWorld的main方法的输出。

3. 使用Ant的jar任务生成jar文件

读者可以在上例的基础上更进一步,来生成jar包,可在run这个target下再加上如下target:

<target name="jar" depends="run"> <jar destfile="helloworld.jar" basedir="build/classes"> <manifest> <attribute name="Main-class" value="HelloWorld"/> </manifest> </jar> </target>
此时将ant的project的default属性设置为jar,同时运行该build.xml文件,运行完毕后,可看到在工程目录下生成了一个jar包HelloWorld.jar。

4. 使用Ant的war任务打包J2EE Web项目

建立一个J2EE Web工程,其目录结构如下图所示: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>ant打包测试</title> </head> <body> Hello,Ant </body> </html>
接下来编写build.xml文件,其内容如下:

<?xml version="1.0"?> <project name="antwebproject" default="war"basedir="."> <property name="classes" value="build/classes"/> <property name="build"value="build"/> <property name="lib"value="WebRoot/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="src" destdir="${classes}"/> </target> <!-- 打war包--> <target name="war" depends="compile"> <war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml"> <!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹--> <fileset dir="WebRoot" includes="**/*.jsp"/> <!-- 拷贝lib目录下的jar包--> <lib dir="${lib}"/> <!-- 拷贝build/classes下的class文件--> <classesdir="${classes}"/> </war> </target> </project>
各target的作用在内容中已经进行说明,在此不再赘述。运行该build文件,更新目录后,可看到在build目录下生成了antwebproject.war文件,解开后可看到其目录结构如下:

--META-INF

--MANIFEST.MF

--index.jsp

--WEB-INF

--lib

--log4j-1.2.9.jar

--classes

--HelloWorld.class

--web.xml

读者可以将该war包拷贝到Tomcat的目录下看一下运行结果。

五. 总结

在本文中,笔者由浅至深详细描述了Ant的安装与配置、关键元素和常用任务。并通过实例讲述了Ant在我们Java项目中的应用,讲述了编译、运行java程序,以及打jar包、war包等知识,引领读者进入Ant的奇妙世界。在本文中可以看到,Ant在自动构建和部署Java程序方面方便易用,而且非常灵活,不失为我们Java开发者的绝佳帮手。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: