正文

ant入门2008-11-08 21:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/wfxsky/39315.html

分享到:

1. Ant是一种基于Java的Build工具.基本特性:(1)基于Java的实现。具有良好的跨平台性,同时可以通过增加新的Java类来扩展Ant的功能,而无需去了解不同平台上不同的脚本语言。 (2)基于XML的配置文件。Ant以XML树来描述Target/Task的关系,文件结构清晰、易读易写,并且利用XML对格式的控制来避免由于配置文件的错误造成的Build操作失败。2. 建立工程的目录常用目录:(1)bin 公共的二进制文件,以及运行脚本 (2)build 临时创建的文件,如类文件等 (3)dist 目标输出文件,如生成Jar文件等。 (4)doc/javadocs 文档。 (5)lib 需要导出的Java包 (6)src 源文件 (7)web web应用3. 编写Build文件Build.xml 由三层标记表示,一层包一层。第一层project,描述整个项目,也就是ant要做的事情整个过程概括。第二层target,目标,对象,你可以理解成一个任务单元,或者任务集,因为它就是把一些任务包括到一起。第三层task,也就是任务了,ant定义了很多任务标记,这个可以在ant的doc里面找到下面以Tomcat 5.0环境下的一个简单应用为例看一下ant 的使用建立目录结构:helloapp|- src|- web|---|- WEB-INF|---|---|- classes|---|---|- liblib 下放这个应用的所有需要的jar文件src 下就是我们的原代码了classes 是代码编译后存放的位置web 就是我们常用的webapp的目录结构我们要做的是:(1)把所需的jar文件考到lib下,在web下编写jsp,html页面,在src下编写java源文件和properties文件,把web.xml,struts-config.xml,tld文件放入WEB-INF(2)编译src下的java源文件,放入classes(3)把src下的所有资源文件拷到classes, 把web应用打包成war文件(4)发布应用,把war文件拷到tomcat的webapps下具体来看一下怎么做(1)就不用说了,看(2):<!-- ================ build.xml ================== --><project name="helloapp" default="compile" basedir="."><target name="compile"><javac srcdir="${basedir}/src" destdir="${basedir}/web/WEB-INF/classes" debug="on"><!-- 定义了classpath就不用在环境变量中设置一大堆jar了 非常方font>"${basedir}/web/WEB-INF/lib"><include name="*.jar"/></fileset></classpath></javac></target></project>命令行下运行: ant 这里我们只定义了一个target 和一个 task, javac 是最常用的 task 了, 很明了,指定源文件地址,目的地,classpath 就可以编译了路径经常要用,为了更方便,来加几个property:<project name="helloapp" default="compile" basedir="."><!-- ================= Property Definitions ==================== --><property name="src.home" value="${basedir}/src" /><property name="classes.home" value="${basedir}/web/WEB-INF/classes" /><property name="lib.home" value="${basedir}/web/WEB-INF/lib" /><!-- ================= "compile" Target ==================== --><target name="compile"><javac srcdir="${src.home}" destdir="${classes.home}" debug="on"><classpath><fileset dir="${lib.home}"><include name="*.jar"/></fileset></classpath></javac></target></project>在看第(3)步加几个property: <property name="app.name" value="helloapp" /><property name="build.home" value="${basedir}/web" />加个"build" Target <!-- ================= "build" Target ==================== --> <target name="build" depends="compile"><copy todir="${classes.home}"><fileset dir="${src.home}"><include name="**/*.properties" /></fileset></copy><jar jarfile="${app.name}.war" basedir="${build.home}" /></target>然后将<project name="helloapp" default="compile" basedir=".">中default改为default="build"运行 ant 就可以看到 helloapp.war 了剩下最后一步:发布它加property: <!-- 指向tomcat的webapps目录 --><property name="webapps.home" value="C:\Tomcat 5.0\webapps"/>[code]加个"deploy" Target[code]<!-- ================= "deploy" Target ==================== --> <target name="deploy" depends="build"><copy todir="${webapps.home}"><fileset dir="${basedir}"><include name="${app.name}.war" /></fileset></copy></target> 然后将<project name="helloapp" default="build" basedir=".">中default改为default="deploy" 运行 ant 就可以在 tomcat的webapps目录下看到 helloapp.war 了,启动tomcat, 运行这个应用完整的 build.xml : <project name="helloapp" default="deploy" basedir="."><!-- ================= Property Definitions ==================== --> <property name="src.home" value="${basedir}/src" /><property name="classes.home" value="${basedir}/web/WEB-INF/classes" /><property name="lib.home" value="${basedir}/web/WEB-INF/lib" /><property name="app.name" value="helloapp" /><property name="build.home" value="${basedir}/web" /><property name="webapps.home" value="C:\Tomcat 5.0\webapps"/><!-- ================= "compile" Target ==================== --><target name="compile"><javac srcdir="${src.home}" destdir="${classes.home}" debug="on"><classpath><fileset dir="${lib.home}"><include name="*.jar"/></fileset></classpath></javac></target><!-- ================= "build" Target ==================== --> <target name="build" depends="compile"><copy todir="${classes.home}"><fileset dir="${src.home}"><include name="**/*.properties" /></fileset></copy><jar jarfile="${app.name}.war" basedir="${build.home}" /></target><!-- ================= "deploy" Target ==================== --> <target name="deploy" depends="build"><copy todir="${webapps.home}"><fileset dir="${basedir}"><include name="${app.name}.war" /></fileset></copy></target> </project>执行ant 如果不带任何参数,ant 会在当前路径下找 build.xml,如找到就运行<project>的default指定的 target也可以指定build.xml 文件和 target, 如:ant -buildfile <build-dir>/xxx.xml targetname

阅读(1641) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册