Ant学习笔记(二)

原创 2008年10月03日 17:27:00

        前面已经介绍了怎样通过Ant来编译和运行一个Java程序,下面我们接着来学习如何通过Ant来发布一个这样的工程。文件结构如图所示,先建立相应的目录结构,我们这里继续使用前面的HelloAnt类。

发布后的目录结构如下:

     hello-ant/src : 用来存放java源文件。
     hello-ant/docs : 项目用到的一些资源文件。
     hello-ant/lib:项目用到的第3方jar包和自己的jar包,这些jar包最后要发布到hello-ant/e/deploy/lib下。

     hello-ant/build:由Ant动态创建,存放编译后的classes文件。
     hello-ant/deploy:工程对外发布的目录,由ant动态创建。

   

     build.xml:

  1. <?xml version="1.0"  encoding="GB2312"?>
  2. <project default="deploy"  basedir=".">
  3. <!--  定义全局变量 -->
  4. <property name="root"  value="." />
  5. <property name="build.classes" value="${root}/build/classes" />
  6. <property name="app.name" value="hello-ant" />
  7. <property name="app.jar" value="${app.name}.jar" />
  8. <!--  初始化  构建相应目录 -->
  9. <target name="clearup" >
  10.        <delete dir="${root}/deploy" />
  11.        <mkdir dir="${root}/deploy/bin" />
  12.        <mkdir dir="${root}/deploy/docs" />
  13.        <mkdir dir="${root}/deploy/lib" />
  14. </target>
  15. <!-- 编译 -->
  16. <target name="compile" >
  17.         <delete dir="${root}/build" />
  18.         <mkdir dir="${root}/build/classes" />
  19.         <javac srcdir="src/hello/ant" destdir="${root}/build/classes" />
  20. </target>
  21. <!-- 打包build/classes/下的所有class 文件到 hello-ant.jar 中-->
  22. <target name="jar" depends="compile">
  23.         <jar basedir="${build.classes}" jarfile="${root}/lib/${app.jar}" />
  24. </target>
  25. <!-- 发布 -->
  26. <target name="deploy" depends="clearup, jar">
  27.        <copy todir="${root}/deploy/docs">
  28.            <fileset dir="${root}/docs">
  29.                 <include name="*.txt" />
  30.                 <include name="*.jsp" />
  31.                 <include name="*.jpg" />
  32.            </fileset>
  33.        </copy>
  34.       <copy file="${root}/lib/${app.jar}" todir="${root}/deploy/lib" />
  35. </target>
  36. </project>

        在DOS下执行
        D:/>cd hello-ant
        D:/hello-ant> ant  -file  build.xml
        Buildfile: build.xml

        clearup:
              [mkdir] Created dir: K:/hello-ant/deploy/bin
              [mkdir] Created dir: K:/hello-ant/deploy/docs
              [mkdir] Created dir: K:/hello-ant/deploy/lib
              [delete] Deleting directory K:/hello-ant/build
              [mkdir] Created dir: K:/hello-ant/build/classes

         compile:
              [javac] Compiling 1 source file to K:/hello-ant/build/classes

         jar:
              [jar] Building jar: K:/hello-ant/lib/hello-ant.jar

        deploy:
              [copy] Copying 3 files to K:/hello-ant/deploy/docs
              [copy] Copying 1 file to K:/hello-ant/deploy/lib

       BUILD SUCCESSFUL
       Total time: 1 second

       这样工程就发布完成了。

      target的depends属性表示这个target在执行时所要依靠的其他target。如果当前target需要依靠多个其他的target则在depends属性中用“,”间隔。这样ant会在执行此target的时候按照从左到右的顺序优先执行depends属性中指定的target。

机器视觉学习笔记(一)

来秦皇岛快一周了,跟导师、学长聊了聊,觉得自己还是想做机器视觉,毕竟做一个智能机器人或者做智能家居一直是我的兴趣所在。这两天学了opencv,进度很慢,有待提高效率。在csdn上发现了很多有用的资料,...
  • sunlightli1216
  • sunlightli1216
  • 2015年01月16日 11:19
  • 262

机器学习笔记(二)(Draft Version)

摘要 笔记(一)中讨论的情况显示,模型越复杂并不一定error越小。那所以这些error到底来自什么地方呢? 1. bias 2. variance 在具体训练过程中,如果可以诊断error的...
  • yucicheung
  • yucicheung
  • 2017年09月18日 15:12
  • 347

西瓜书学习笔记(二)

啊啊啊啊啊,昨天本来第二章写了不少内容,但是不知道CSDN的Markdown编辑器是不会自动保存的,中途发别的博客会把之前编辑的也给覆盖掉,这一章就简单写点吧。第二章 模型评估与选择2.1 经验误差与...
  • Cyril__Li
  • Cyril__Li
  • 2017年04月25日 18:49
  • 390

node.js学习笔记(2)---Nodejs开发框架Express3.0开发手记–从零开始

目录 此文重点介绍Express3.0的开发框架,其中还会涉及到Mongoose,Ejs,Bootstrap等相关内容。   项目源码下载地址:http://download.csdn.net/det...
  • liuwu0720
  • liuwu0720
  • 2014年03月15日 10:59
  • 1602

CMAKE学习笔记(二)

声明:本文为转载博客(感谢网友dbzhang800),转载链接在博客末尾 在 Cmake学习笔记一 中通过一串小例子简单学习了cmake 的使用方式。 这次应该简单看看语法和常用的命令了。 ...
  • u012700322
  • u012700322
  • 2016年12月23日 14:26
  • 250

我的openwrt学习笔记(二):OpenWrt 开发环境搭建

首先我们首选的OpenWrt 编译环境是 Ubuntu,并且应尽量选择稳定的LTS版本,而不是更高版本的。这里我们推荐使用 Ubuntu 12.04 LTS或者Ubuntu 14.04 LTS作为编译...
  • xushx_bigbear
  • xushx_bigbear
  • 2015年08月18日 09:48
  • 19545

XSL学习笔记(二)

  第一部分学了7个元素,还有24个,一个一个学吧。  1、、、元素  与相比,两者都须是的子结点,但前者定义的模板规则优先级比较低,且必须为第一个子结点。两者的功能是相同的,都是将另一个定义好的XS...
  • Borenbao
  • Borenbao
  • 2006年04月14日 09:25
  • 1684

caffe学习笔记(2)

caffe学习笔记(2)-视觉层(vision layers) 本文参考博客caffe学习,是根据这篇博客做的学习笔记。详细情况可以参考原博客,真的很赞。 所有的层都具有的...
  • Ddreaming
  • Ddreaming
  • 2016年10月12日 08:44
  • 679

ant学习笔记(二)

使用Ant运行windows的批处理文件要在Ant内运行一个外部程序,应使用任务。它允许你执行下列操作: 指定程序名和要传入的参数。 命名运行目录。 使用failonerror...
  • zzkathy
  • zzkathy
  • 2007年12月19日 22:22
  • 465

《数据挖掘》学习笔记——认识数据(1)

一、数据属性定义:属性即一个数据的字段,在不同的领域有不同的等价叫法,例如:维度、特征、变量。 从具体事例角度看,数据的属性就像Excel表格的列,比如:...
  • qqmindyourwill
  • qqmindyourwill
  • 2016年05月19日 20:42
  • 384
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ant学习笔记(二)
举报原因:
原因补充:

(最多只允许输入30个字)