ant打包编译脚本

1、在使用eclipse开发web项目的时候,不像myeclipse可以使用导出war的方式进行打包发布,需要借助第三方的工具,ant比较好,现在更好的工具是maven,目前研究了下ant
2、安装下载ant,配置环境变量,可通过命令行查看ant是否安装成功

3、编写ant脚本
<?xml version="1.0" encoding="UTF-8"?>   
<project name="bootstrap" default="deploy" basedir=".">
	<!--定义打包编译的路径-->
	<property name="webapp.name"  value="webtest" description="打出的war包名称"/>   
    <property name="build.dir"  value="build" description="输出目录"/>
	<property name="build.war.dir"  value="${build.dir}/war" description="war包的输出目录"/>
    <property name="build.web.dir"  value="${build.dir}/WEB-INF" description="web配置输出目录"/>
    <property name="build.web.class.dir"  value="${build.web.dir}/classes" description="web项目中的class文件输出目录"/>   
    <property name="build.web.lib.dir"  value="${build.web.dir}/lib" description="web引用的jar包输出目录"/>
    <property name="src.dir"  value="src" description="源代码目录"/>
    <property name="WebRoot.dir"  value="${basedir}/WebContent" description="配置和页面等文件目录"/>
    <property name="lib.dir"  value="${WebRoot.dir}/WEB-INF/lib" description="源lib目录"/>
    <property name="encoding"  value="utf-8" description="文件编码"/>
	<!--日期-->
	<tstamp>
		<format property="createdate" pattern="yyyyMMddhhmm" />
	</tstamp>
    <!--项目的classpath路径-->
    <path id="project.classpath">
    	<fileset dir="${lib.dir}">
    		<include name="*.jar"/>
    	</fileset>
    	<pathelement path="${basedir}/WebRoot/WEB-INF/lib"/>    	
    </path>

    <!--1.创建相关的文件目录-->
    <target name="init">   
        <mkdir dir="${build.dir}"/> 
    	<mkdir dir="${build.war.dir}"/>   
        <mkdir dir="${build.web.dir}"/>   
        <mkdir dir="${build.web.class.dir}"/>   
        <mkdir dir="${build.web.lib.dir}"/> 
    </target> 

    <!--2.清空上次编译的classes文件-->
    <target name="clean" description="Delete old build and dist directories">   
        <delete dir="${build.web.class.dir}" includes="**/*.class"/>    
    </target>   

    <!--3.编译源文件-->
    <target name="compile" depends="init,clean" description="Compile Java sources" >   
    	<!--编译java文件成class文件到指定目录-->
    	<javac srcdir="${src.dir}"  destdir="${build.web.class.dir}" optimize="true">   
    		<compilerarg line="-encoding utf-8"/>
            <classpath refid="project.classpath"/>   
        </javac>   
        <!--复制编译后源代码目录中所有的非java文件-->
        <copy todir="${build.web.class.dir}">   
            <fileset dir="${src.dir}" excludes="**/*.java"/>   
        </copy> 
        <!--复制源代码以外的其他文件-->
        <copy todir="${build.dir}">   
          <fileset dir="${WebRoot.dir}" excludes="**/*.java"/>   
        </copy> 
    </target>

    <!--4.打war包-->
    <target name="deploy" description="Install application to servlet container" depends="compile"> 
       <!--删除之前的打的包-->  
       <delete dir="${build.war.dir}"/>    
       <war destfile="${build.war.dir}/${webapp.name}${createdate}.war" basedir="${build.dir}" webxml="${build.dir}/WEB-INF/web.xml">     
            <lib dir="${build.web.lib.dir}"/>    
            <classes dir="${build.web.class.dir}"/>            
        </war>    
    </target> 
</project>   



4、进入项目的目录



5、通过cmd进入该目录下面,使用ant即可打包

猜你喜欢

转载自tonyj.iteye.com/blog/2304072
今日推荐