Just a little smile ^ ^

yoyo_zeng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  112 随笔 :: 3 文章 :: 0 评论 :: 10万 阅读

跨平台的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   yoyo_zeng  阅读(389)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示