关于ANT打包实际操作的记录

ANT 打包


ant

ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点:
1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。
2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。
Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。
每个task实现了特定接口对象。
3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。
Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去,并导出。

安装

1.下载相应的版本 见:http://ant.apache.org/
2.配置环境变量 例如
    ANT_HOME   D:/ apache-ant-1.9.0
    path       D:/ apache-ant-1.9.0/bin
    classpath  D:/apache-ant-1.9.0/lib

编写ant 的build脚本

Ant构建文件默认命名为build.xml,也可以取其他的名字。
只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。
一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。
<!-- 设置XML文件编码格式 -->    
    <?xml version="1.0" encoding="utf-8"?>
    <!-- name项目名,default默认运行目标,basedir项目相对于脚本的位置 -->    
    <project name="XXX" default="xxxx" basedir=".">

    <!-- 文件内容的简介,包括文件名称,创建日期,最近修改日期等 -->    
    <!--  
       Build file for 'componentName'  
       Creation date : $Date: yyyy-m-d $  
       Updated date : $Date: yyyy-m-d $  
       Author:    developerName
       Copyright 2002 CompanyName, Inc. All rights reserved.  
    --> 
        <!-- 定义所有需要用到的变量 -->    
    <property name="project.name" value="atq_picc" description="项目名称"/>  
    <property name="jar.name" value="${project.name}" description="jar包名称"/>  
    <property name="war.name" value="${project.name}" description="war 包名称"/>  
    <property name="localWebServer.home" value="E:/apache-tomcat-8.5.23/" description="本地web容器的部署路径"/>  

    <property name="classpath.java" value="${basedir}/src" description="源代码目录路径"/>  
    <property name="classpath.resources" value="${basedir}/resources"  description="项目资源路径"/>
    <property name="webcontent.dir" value="${basedir}/WebRoot" description="webapp路径"/>  
    <property name="webcontent.webinf.dir" value="${webcontent.dir}/WEB-INF" description="web-inf 路径"/>
    <property name="classpath.lib" value="${webcontent.webinf.dir}/lib"  description="运行时lib包位置"/>
    <property name="classes.dir" value="${webcontent.webinf.dir}/classes"  description="原项目默认编译位置"/>
    <!--  编译的目标路径  -->  
    <property name="target.dir" value="${basedir}/target" description="编译后的位置"/>   
    <property name="target.jar.dir" value="${target.dir}/jar" />  
    <!--<property name="target.war.dir" value="${target.dir}/war" />  --> 

    <property name="compile.level" value="1.7"  description="编译级别"/>
    <property name="compile.encoding" value="UTF-8"  description="编码格式"/>

    <property name="full.package.name" value="${project.name}_${version.date}.jar"  description=""/>
    <property name="package.excludesfile" value="${basedir}/excludeslist.txt"  description="打包要排除的文件,每个文件另起一行"/>
    <!--  定义 classpath 路径,抽象定义,可以多处引用  -->  
    <path id="classpath">  
        <!-- 项目的jar包-->  
        <fileset dir="${classpath.lib}"> 
            <include name="*.jar" />  
        </fileset>  
        <!-- 项目的classes文件-->  
        <pathelement location="${classes.dir}" />  
        <!-- web 服务器的jar包
        <fileset dir="${localWebServer.home}/lib">  
            <include name="**/*.jar" />  
        </fileset> -->  
    </path>  
    <!--清理目标位置  --> 
    <target name="clean">
        <delete dir="${classes.dir}" />
        <delete dir="${target.dir}" />
    </target>
    <!--自动化流程开始-->  
    <!--  初始化删除、创建 classes 路径  -->  
    <target name="init" depends="clean">  
        <echo message=" ======  初始化创建build.dir编译目录  ======" />  
        <mkdir dir="${target.dir}" />  
        <!--<mkdir dir="${target.war.dir}" />  -->  
        <echo message=" ======  初始化WebContent.classes创建编译目录  ======" />  
        <!-- WebContent 下的 classes -->  
        <mkdir dir="${classes.dir}" />

    </target>  

    <!--  编译 java 文件,编译到 target.classes 下-->  
    <target name="compile" depends="init">  
        <echo message=" ======  编译源代码 复制到 target.classes 目录 ======" />  
        <javac nowarn="on" encoding="${compile.encoding}" target="${compile.level}" source="${compile.level}" srcdir="${classpath.java}" destdir="${classes.dir}"  fork="true" debug="true" includeAntRuntime="false" memoryInitialSize="256m" memoryMaximumSize="512m" classpathref="classpath">  
        </javac>            
    </target> 

    <!-- 打包 -->
    <target name="pack" depends="compile" description="打全量包">
        <echo>打全量包${full.package.name}</echo>
        <jar destfile="${target.dir}/${full.package.name}" basedir="${webcontent.dir}" excludesfile="${package.excludesfile}" />
    </target>
</project>

说明

该脚本只包括简单的java web 的编译,打jar包流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值