Just a little smile ^ ^

yoyo_zeng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

跨平台的xml脚本引擎,用于自动化调用程序完成项目的编译,大包,测试,一般命名为build.cml,可以设置一些列target。

target一般包括:

* 任务1:usage 打印本脚本的帮助信息(缺省)
* 任务2:clean <-- init 清空初始化环境
* 任务3:javadoc <-- build <-- init 生成JAVADOC
* 任务4:jar <-- build <-- init 生成JAR
* 任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc
 
ant标签包括一下部分。
ant打包的步骤一般是:
1 建立一个临时路径,临时存放需要打包得文件,下面有两个文件夹,一个存放class文件,一个存放项目中的web文件
2 clean上一次打包得文件
3 编译class文件到临时路径下class目录中
4 将项目中web下的静态文件 js,css,html,image等copy到临时路径下的web目录中。
5 将项目中web下的配置文件copy到临时路径下的web目录中。
6 将临时路径下的文件和项目文件中的lib文件打成war包
7 将war包放到服务器下面。
 
<project name="项目名" default="默认的运行目标" basedir="" description="项目的描述">
    <property file="build.properties" />
    <property name="xxxxJarPath" value="${tempPath}/xxxx.jar" />
    <property name="xxxxBuildPath" value="${tempPath}/xxxxBuildPath" />
    <property name="xxxxClassPath" value="${xxxxBuildPath}/classes" />
    <property name="xxxLibPath" value="${ProjectPath}/web/WEB-INF/lib" />
    <property name="webPath" value="${ProjectPath}/web" />
    <property name="webDest" value="${tempPath}/xxxx-web" />
     <property name="webDestZip" value="${tempPath}/xxxx-web/xxx.zip" />

    <target name="clean">
    <delete dir="${xxxxBuildPath}" />
    </target>

    <!--depends为依赖的target,执行target前会执行depends target -->
    <target name="build" depends="clean">

        <!--创建class path-->
    <mkdir dir="${xxxxClassPath}" />

        <!--编译class文件-->
    <javac destdir="${xxxxClassPath}" encoding="UTF-8"><!--class输出路径-->
        <src path="${xxxxSrcPath}" /><!--原文件路径-->
        <classpath refid="xxxLibPath" /><!--支持的lib文件的路径-->
     </javac>    
    </target>
    
    <!--创建jar -->
    <target name="create_xxxx_jar" depends="build">
    <jar destfile="${xxxxJarPath}" filesetmanifest="mergewithoutmain">
        <manifest>
            <attribute name="Main-Class" value="Utils.xxxxUtils" />
            <attribute name="Class-Path" value="." />
        </manifest>
        <fileset dir="${xxxxClassPath}" />
        <zipfileset excludes="META-INF/*.xx" src="${xxxLibPath}/poi-3[1].0.1-FINAL-.jar" />
    </jar>
    </target>

    <!--该标签用来执行编译生成的.class文件 -->
    <target name="run_xxxx" depends="create_xxxx_jar">
        <!--fork在一个新的虚拟机中运行该类 -->
        <java jar="${xxxxJarPath}" fork="true">
            <arg line="${webPath} ${webDest} ${xxxxResourse}" />
            <sysproperty key="file.encoding" value="utf-8" />
        </java>
    </target>

     <!--copy静态文件,包括css,image,jsp/html -->
    <target name="copyStaticFile" depends="run_xxxx">
        <copy todir="${webDest}/css">    
            <fileset dir="${webPath}/css" />
        </copy>
        <copy todir="${webDest}/images">
            <fileset dir="${webPath}/images" />
        </copy>
        <copy todir="${webDest}/js">
            <fileset dir="${webPath}/js" />
        </copy>
        <copy todir="${webDest}">
            <fileset dir="${webDest}/html" />
        </copy>
        <delete dir="${webDest}/html" />
    </target>

    <!--将静态文件打包-->
    <target name="staticFileZip" depends="copyStaticFile">
    <zip destfile="${webDestZip}">
        <fileset dir="${webDest}" />
    </zip>
    </target>

    <target name="MapperXMLCopy" depends="staticFileZip">
    <copy todir="${xxxxClassPath}">
        <fileset dir="${ProjectPath}/src" excludes="*.java,*/*.java,*/*/*.java,*/*/*/*.java,*/*/*/*/*.java,*/*/*/*/*/*.java,*/*/*/*/*/*/*.java,*/*/*/*/*/*/*/*.java" />
    </copy>
    </target>

    <!--copy 配置文件-->
    <target name="webCopy" depends="MapperXMLCopy">
    <copy todir="${webDest}/META-INF">
        <fileset dir="${ProjectPath}/web/META-INF"/>
    </copy>
    <copy todir="${webDest}/WEB-INF">
        <fileset file="${ProjectPath}/web/WEB-INF/*.xml"/>
    </copy>
    </target>

    <!--打成war包-->
    <target name="war" depends="webCopy">
    <war destfile="${tempPath}/xxxx.war" webxml="${MProjectPath}/web/WEB-INF/web.xml">
        <fileset dir="${webDest}"/>
        <lib dir="${xxxLibPath}"/>
        <classes dir="${xxxxClassPath}" />
    </war>
    </target>
    
    <!--将war包放到jboss或者tomcat目录下-->
    <target name="moveWar" depends="war">
    <move todir="${xxxxWarDestPath}">
        <fileset file="${tempPath}/xxxx.war"/>
    </move>
    </target>
</project>            

 

 
posted on 2013-11-06 18:10  yoyo_zeng  阅读(387)  评论(0编辑  收藏  举报