论坛首页 Java企业应用论坛

用ant做了个简单的例子 将web工程发布到tomcat的webapps下

浏览 4898 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-20  
项目做完了,用的是ant脚本构建的.自己以前没有使用过,所以闲暇之余先来了解一下,学习一下.我自己到网上搜索了一下,找到了<<Ant简单教程>>然后花了二十分钟粗略的看了一下,就开始做了个下例子.
关于ant的配置环境变量是首先必须的
首先到 http://ant.apache.org/bindownload.cgi这里去下载ant的压缩包,上面有linux和windows专用的,我这里下的是windows系统下用的.把下在的压缩包解压放在任意目录下然后配置环境变量:1.配置ANT_HOME: (D:\apache-ant-1.7.1)这是我的目录
                       2.pathD:\apache-ant-1.7.1\bin)
然后进入dos界面输入ant命令显示如下信息 则证明安装成功
Buildfile: build.xml does not exist!
Build failed
我们用ant脚本语言把一个项目整合或移动到某个目录下.而这些命令都下在一个build.xml的文件中,一般把这个build.xml文件放在项目的src目录下(项目不是太大),或者某个模块的src目录下(项目由多个模块构成,比较大)我在这里只是做了个小小的例子所以把build.xml放在项目的src目录下.使用eclipse+myeclipse 新建一个web项目就不说了,接着在src目录下建一个build.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-project" default="run" basedir="../">
	<!-- 这里的basedir是 工程的目录为根目录
		一般basedir="."表示的是build.xml文件所在的相对目录为根目录即src 
	-->
	<property name="src" value="src"/>
	<property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes"/>
	<!-- 定义发布目录 把工程copy到tomcat的工作目录下-->
	<property name="webApp" value="E:\apache-tomcat-5.5.26\webapps\ant-project"/>
	<echo message="init ..." />
	<!-- ================================= 
          target: init              
         ================================= -->
    <target name="init">    
        <mkdir dir="${dest}"/> 
    	<delete dir="${src}/classes"></delete>
    </target>	
	<!-- ================================= 
	          target: run              
	         ================================= -->
	<!-- 编译class文件-->
	<target name="compile" depends="init">
	<!--	<javac srcdir="${src}" destdir="/${basedir}/WebRoot/WEB-INF/classes"></javac> -->
	</target>	
	
    <target name="run" depends="compile" description="description">
    	<!--除了class文件外,其他文件拷贝到tomcat目录下-->
        <copy todir="${webApp}" overwrite="true">
            <fileset dir="${basedir}/WebRoot" excludes="**/*.class"/>
        </copy>
    	<!--将class文件打包,放到/WEB-INF/lib目录下-->
        <jar destfile="${webApp}/WEB-INF/lib/test.jar">
            <fileset dir="/${basedir}/WebRoot/WEB-INF/classes">
                <include name="**/*.class" />
            </fileset>
        </jar>
		
    </target>


</project>


下面简单的解释下这个文件
1.每个build文件都包含一个project标签.name属性指项目的名称,可以随你自己取.default指默认要执行的target.basedir顾名思义是工作的根目录.
2.<property>可以理解为我们写程序时的变量.name是变量的名称 value是变量的值,在下面的脚本要用到这个变量时需要使用${name}方式调用
3</target>标签是build.xml文件的核心标签.里面主要是写一些你要做的操作然后依次按照你写好的依赖关系逐步执行target. name属性是target的名称,depends属性是指,当前这个target执行时必须先把depends对应的target执行(如果depends对应的target没有执行)如果depends对应的target已执行了,则直接执行当前的target
4.<javac>就是java中的编译命令.srcdir是指需要编译的java文件的目录.destdir是指编译后的class文件存放的目录
5<copy>这里的两个属性应该很好理解,todir是copy的目标目录 ,overwrite表示是否覆盖.<fileset>文件集合.dir属性表示被copy的源文件目录.excludes表示除开什么文件类型之外的文件
6<jar>打成jar包 可以象上面那样写也可以象这样写<jar jarfile="${${webApp}/WEB-INF/lib/test.jar}" basedir="${dest}"/>.jarfile表示生成的jar的文件,basedir表示class文件所在的目录.
当然ant脚本并没有这么简单.要写出一个好的ant脚本,部署一个庞大的项目,需要写出复杂的ant脚本,那是需要我们自己去在项目中运用才能有那种能力的.这只是个入门的小例子.写得不好的地方请大家多多提意见.下面是工程附件
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics