zoukankan      html  css  js  c++  java
  • ant

    跨平台的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>            
     
  • 相关阅读:
    Spring Boot面试杀手锏————自动配置原理
    session在什么时候创建,以及session一致性问题
    IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?终于有人讲明白了
    FaaS,未来的后端服务开发之道
    架构师必须了解的30条设计原则
    vuejs2.0使用Sortable.js实现的拖拽功能( 转)
    Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
    Java静态类
    CGLIB(Code Generation Library)详解
    hive--udf函数(开发-4种加载方式)
  • 原文地址:https://www.cnblogs.com/zengyou/p/3410957.html
Copyright © 2011-2022 走看看