打包工具ant教程

一、安装ant

官方http://ant.apache.org/bindownload.cgi下载新版(目前为Ant1.10.1)的ant,得到的是一个apache-ant-1.10.1-bin.zip的压缩包。将其解压到你的硬盘上,例如:C:\apache-ant-1.10.1。

二、配置环境变量

window中设置ant环境变量:

ANT_HOME    C:/ apache-ant-1.10.1

path             C:/ apache-ant-1.10.1/bin

classpath      C:/apache-ant-1.10.1/lib

三、验证ant安装成功(如果验证不通过,请按前面步骤检查)

3.1进行如下操作验证:

依次:开始->运行->cmd,输入如下命令:ant

  如果出现如下内容,说明安装成功:  

  

  【说明ant安装成功!因为ant默认运行build.xml文件,这个文件需要我们建立。】

3.2查看版本:ant  -version

  

3.3如果验证不成功,请仔细检查环境配置.

四.ant实例

 4.1项目结构

  目标用ant生成sunstar-coupon-1.0.jar, 这个jar能执行JDMessageMonitor.main方法就可以了(所以后面ant配置文件build.xml只对JDMessageMonitor编译)

  注意ant的配置文件build.xml放在项目根目录下(一般).

  

 4.2项目build.xml

  这是简单的配置,里面有详细的注解

复制代码

<?xml version="1.0" encoding="GBK"?>
<!--project 用于定义一个ant工程,其中的三项name、default、basedir缺一不可。
作用分别为:定义工程名、制定默认执行的任务、以及工程基础的路径型(它是计算其它路径的基础,一般情况下使用.即在java工程根目录即可)-->
<project name="coupon" default="jar" basedir=".">
    <description>easy ant</description> <!--描述,个人觉得就是一提示作用,没什么实际用途-->
    <property name="src" value="src" /><!--定义源文件路径,其中的value换成location也行,使用value的时候,${src}得到的就是src这个值,如果使用location,得到的是src这个目录的绝对路径-->
    <property name="classes" value="ant/bin" /><!--编译后class文件存放的地方-->
    <property name="jar_dir_name" value="C:\Users\peter\Desktop\sunstar-coupon-1.0.jar" /> <!--我们要生成的jar包-->
    <property name="lib.dir" value="doc"/> <!--其他引用的jar包存放的位置-->

    <!--创建任务init,负责初始化一些条件-->
    <target name="init">
        <delete dir="${classes}" /><!--删掉原有文件夹-->
        <mkdir dir="${classes}" /><!--重新生成文件夹-->
        <delete file="${jar_dir_name}" /><!--删除旧的jar包-->
    </target>

    <!--设置classpath,配置引用的jar-->
    <path id="classpath">
        <fileset dir="${lib.dir}">
            <include name="*.jar"/>
        </fileset>
    </path>

    <!--创建编译任务,名字是compile,depends指定了comiple任务依赖init任务-->
    <target name="compile" depends="init" description="comile target">
        <!--javac,编译,对应java中的javac命令-->
        <!--srcdir定义源文件路径-->
        <!--destdir定义编译后文件路径-->
        <!--includeantruntime作用是指定编译任务是否包含ant的classpath,可有可无,不影响编译-->
        <!--debug 设置为true 会把源文件的属性信息如源文件名称写入class文件  ; 如果为false以后log4j日志输出引用类名会找不到变成?号-->
        <javac srcdir="${src}" destdir="${classes}" debug="true" includes="**/JDMessageMonitor.java" includeantruntime="true">
            <classpath refid="classpath"/>    <!--前面已经配置的classpath,引入依赖的jar-->
        </javac>
        <copy todir="${classes}"><!--把src源文件目录下的配置文件 , 复制到编译后的目录中-->
            <fileset dir="${src}">
                <include name="**/*.xml"/>
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <!--打包开始,名字为jar,依赖任务为compile-->
    <target name="jar" depends="compile" description="make jar file">
        <jar jarfile="${jar_dir_name}" basedir="${classes}"><!--jar操作,jarfile指定jar包存放路径,basedir为编译后的class的目录-->
            <!--为jar包指定manifest,当然,如果jar包不需要打成runnable的形式,manifest可以不要-->
            <manifest>
                <!--指定main-class-->
                <attribute name="Main-Class" value="com.sunstar.coupon.monitor.JDMessageMonitor" /><!--java -jar sunstar-coupon-1.0.jar  默认执行com.sunstar.coupon.monitor.JDMessageMonitor.main方法-->
                <!--指定Class-Path-->
                <!--<attribute name="Class-Path" value="${libs}">-->
                <!--</attribute>-->
            </manifest>
        </jar>
    </target>
</project>

<!--ant.project.name是ant默认的一个变量,值为最上面定义的project的name  ;  ${DSTAMP}为日期,格式为20111123;${TSTAMP}为时间,格式为2256,表示22点56分。-->

复制代码

 4.3执行与结果

  4.3.1 在项目的根目录下,打开cmd,执行ant;

  根目录(即是build.xml所在目录),输入ant,回车

  

  4.3.2 ant执行结果截图与说明

    我在build.xml中配置生成jar的路径是电脑桌面

    <property name="jar_dir_name" value="C:\Users\peter\Desktop\sunstar-coupon-1.0.jar" /> <!--我们要生成的jar包-->

    

  

 

  4.3.2 命令行运行sunstar-coupon-1.0.jar

    sunstar-coupon-1.0.jar里面的结构就是我们编译后生成的目录结构,没有包含其他依赖的jar包,所以我们把sunstar-coupon-1.0.jar和所有依赖jar放在同一个文件夹中:

    然后执行:java -cp "./sunstar-coupon-1.0.jar;./*"   com.sunstar.coupon.monitor.JDMessageMonitor

    (注意命令中-cp参数,必须把sunstar-coupon-1.0.jar放前面,保证先在sunstar-coupon-1.0.jar中找配置文件)

    

    执行成功!!!

    

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值