(本文第一地址:http://www.cnblogs.com/huangchanghuan/p/6597741.html)  

最近需要使用ant打包项目,在服务器上面部署定时器执行任务,所以记录这此ant打包项目的过程;

     1.java命令行基础要熟练(一些参数配置),才能避免ant配置参数不对而产生的bug

      (配置javac时候,没有加debug="true",导致jar包运行,日志中输出不了类名,只有一个'?'号)

      INFO 2017-03-21.23:59:03.505 [?:?] 线程任务成功返回:线程执行完成.

     2.ant打包项目还是其他工具打包,所有项目必须按要求使用jdk版本

一、安装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中找配置文件)

    

    执行成功!!!

    

转载于:https://www.cnblogs.com/huangchanghuan/p/6597741.html

ant安装、环境变量配置、ant实例相关推荐

  1. 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )

    文章目录 一.Flutter 学习资料 二.Flutter 开发环境搭建 三.Android Studio 环境安装 Flutter / Dart 插件 四.下载 Flutter SDK 五.设置 F ...

  2. JDK软件安装+环境变量配置图文详解(Win10环境)

    一.官网下载安装包:https://www.oracle.com/java/technologies/downloads/  (需要登录Oracle账号才能开始下载的,没有账号可用邮箱新注册一个) 二 ...

  3. python基础环境配置(python安装 环境变量配置 pycharm试用时间重置插件使用)

    1.0 python环境 1.1 python下载 环境:win10 64位(环境相同跟着一步一步走就可以,如果不同麻烦根据文中的说明来调整或留言) 在python官网python下载界面点击自己系统 ...

  4. Node.js安装+环境变量配置详细版(超火火火)

    他来了~他来了~,亲爱的小伙伴们,为了照顾一下想学node.js新入门的同学,特意出了一篇node.js+环境变量配置详细安装版,还热乎着,快来随小招试一试吧(接下来还有想学vue的小伙伴都会分享给大 ...

  5. 1.非关系型数据库(Nosql)之mongodb:mongodb的安装,环境变量配置,数据库服务端启动,客户端启动

     1.MongoDB官方网站上下载MongoDB的安装版本.截图如下: 2 安装64位版本的mongodb.将它解压到: E:\Installed\mongodb-win32-x86_64-2.6 ...

  6. Ant安装及环境变量配置+邮件配置+Ant生成接口测试报告

    Ant安装 1.将Ant解压到 D:\Atest\apacheAnt下 2.将JMeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到 ant 所在目录lib子目录下 ...

  7. ANT安装、环境变量配置及验证

    一.安装ant 到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包.将其解压到你的硬盘 ...

  8. ant root环境配置_Java ant环境变量配置

    windows 1.我的电脑-->属性-->高级-->环境变量. 2.配置用户变量: a.新建 JAVA_HOME C:\Program Files\Java\j2sdk1.5.0 ...

  9. java maven下载_maven下载安装 Apache Maven(java项目管理工具) v3.6.1 官方版(附Maven环境变量配置) 下载-脚本之家...

    Maven是一个java项目管理工具,能够很方便的帮你管理项目报告,生成站点,管理jar文件,需要的朋友可以下载试试! 它基于项目对象模型(POM)的概念,可以从中央信息中管理项目的构建.报告以及文档 ...

最新文章

  1. 推荐几首好听的Coldplay的歌
  2. [转载]IT知识体系结构图
  3. esp32 python-ESP32教程:MicroPython支持
  4. 神策数据助力海尔落地 6 大智慧厨房在线场景
  5. Python读取Json字典写入Excel表格的方法
  6. 使用自定义线程池处理并行数据库流
  7. LeetCode题解-3-Longest Substring Without Repeating Characters
  8. Android 更改签名
  9. 机器学习的未来——深度特征融合
  10. go语言项目如何引用依赖Github上的开源项目
  11. 联想 710s 安装win7(win 10 换 win 7)读不出硬盘,需要 NVME驱动
  12. VelocityTracker简介
  13. 老外网络语言缩写总结
  14. 携手聚力 共赢数智未来丨物通博联招募生态合作伙伴
  15. Spark Transformation转换算子和Action行动算子
  16. 如何合理运用美容院资源
  17. Android支付接入(一):支付宝
  18. vue 关于清除浏览器全部cookie的问题及解决方法(绝对有效)
  19. Mac格式化移动硬盘DiskUtil
  20. 东芝2323AM复印机双面打印设置方法

热门文章

  1. 概率论重修笔记 11矩估计和极大似然估计.md
  2. Latex排版常用数学符号表示方法
  3. JAVA 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
  4. Unity获取物体下的子物体
  5. Linux挂载data盘
  6. MySQL级联优缺点_【Mysql】外键级联与级联的劣势_MySQL
  7. “我,35岁,失业,是不是再也没有机会了?”
  8. 【多元统计分析】聚类分析【期末复习】
  9. 计算机音乐三生三世,抖音上很火的三生三世是什么歌?
  10. Oracle中创建,删除同义词 Synonym