`
xiandaoyan
  • 浏览: 21471 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ant学习笔记

阅读更多

最近因为工作需要,学习了一下ant工具的使用,个人感觉这个构造工具还是相当有用的!在学习中自己也做了些笔记,这里

贴出来,希望对想了解ant工具的人有点帮助,同时也感谢那位写《ant使用指南》的高手!

  ①ant的优点
   跨平台,使用简单,语法清晰, 功能强大!

  ②Ant 生成文件剖析
 A.每个生成文件由单个 project 元素组成,该元素又包含一个或多个 target 元素。
 B.一个目标(target)是生成过程中已定义的一个步骤,它执行任意数量的操作,比如编译一组源文件。一次生成过程所

必需的所有操作可以放入单个 target 元素中。,但是那样会降低灵活性。
 C.Ant 的 location 属性专门设计用于以平台无关的方式包含文件系统路径。例如:<property name="database-file"

location="archive/databases/${metal}.db"/>
<property name="database-file" location="archive\databases\${metal}.db"/> 这个标签的两个版本都会在不同的平台具有相

同的行为。

  ③定义依赖关系
 Ant 采用一种更灵活的方法来定义 依赖关系 ,就像 make 和类似的生成工具所做的那样。每个目标的定义依据的是在它

在能够执行之前必须完成的其他所有目标。是使用 target 元素的 depends 属性来实现的。

  ④运行 ANT
 就其本身而言,Ant 是一个命令行形式的工具,通常从 UNIX 或 Linux  shell 提示符或者 Windows 命令提示符调用,

生成文件则使用您自己选择的文本编辑器来编写。现在很多的IDE都已经提供了对ant的支持,比如Eclipse,IDEA等,在IDE之需要

点右键在点左键就可以了。

  ⑤各种命令
 A.编译源代码:由于 Ant 的主要目标是生成 Java 应用程序,它能够内在地、出色地支持调用 javac 编译器以及其他

Java 相关任务就毫不奇怪了。<javac srcdir="src"/> 。
 B.javac 任务的一个重要特点在于,它仅编译那些它认为需要编译的源文件。
 C.指定编译器的某些内存选项,或者需要使用一种不同级别的编译器的时候。为实现这个目的,只需将 javac 的 fork

属性设为 true,<javac srcdir="src" fork="true"/>

  ⑥创建  JAR 文件
 在编译 Java 源文件之后,我们就可以把结果类文件打包到一个 JAR 文件中,这个文件类似 zip 归档文件。每个 JAR

文件都包含一个清单文件,它可以指定该 JAR 文件的属性。 <jar destfile="package.jar" basedir="classes"/>

  ⑦时间戳生成
 在生成环境中使用当前时间和日期,以某种方式标记某个生成任务的输出,以便记录它是何时生成的,这经常是可取的。

例如<jar destfile="package-${DSTAMP}.jar" basedir="classes"/> 如果这个任务在 2009 年 10 月 9 日调用,该 JAR 文件将

被命名为 package-20091009.jar。

  ⑧文件操作
 a.创建目录 :<mkdir dir="archive/metals/zinc"/>,mkdir目录分隔符可以是/、\ ;另一个有用特性是它的如下能力:

在父目录还不存在时创建它们
 b.删除目录:<delete dir="archive/metals/zinc"/>,这将删除指定的目录连同它包含的所有文件以及子目录。 使用

file 属性而不是 dir 属性可以指定要删除的单个文件。
 c.复制和移动文件及目录:<copy file="src/Test.java" tofile="src/TestCopy.java"/>
move 来执行重命名操作而不是拷贝文件: <move file="src/Test.java" tofile="src/TestCopy.java"/>
将文件复制或移动到另一个目录:
 <copy file="src/Test.java" todir="archive"/>
 <move file="src/Test.java" todir="archive"/>
 d.创建和解压缩  zip 及  tar 文件:
创建 zip 文件的 Ant 任务:<zip destfile="output.zip" basedir="output"/>
创建 tar 文件:<gzip src="output.tar" zipfile="output.tar.gz"/>
解压缩和提取文件同样也很简单: <unzip src="output.tar.gz" dest="extractDir"/>
 e.替换文件中的标记:<replace file="input.txt" token="old" value="new"/>
token 属性指定要查找的字符串,value 属性指定一个新的字符串,查找到的标记字符串的所有实例都被替换为这个新的字符串。

  ⑨模式匹配:文件集用于指定一组文件,并且这个组的内容可以使用 include 和 exclude模式来指定
 A.以 .java 结尾的所有文件的模式是 *.Java
 B.,模式 src*/*.java 将匹配带 src 前缀的任何目录中的所有Java 文件
 C. **/*.java 将匹配当前目录结构下的所有 Java 文件
 D.fileset:fileset 默认情况下包含指定 src 目录下的所有文件
       <copy todir="archive">
              <fileset dir="src">
                     <include name="*.java"/>
             </fileset>
       </copy>

  ⑩使用选择器:使用include 和 exclude 及 选择器 来选择文件
 A  size:这个选择器用于根据文件的字节大小选择文件(除非使用 units 属性来指定了不同的单位)。when 属性用于

设置比较的性质(less、more 或者 equal),value 属性定义每个文件将与之作比较的目标大小。
 B  contains:只有包含给定文本字符串(由text 属性指定)的文件才匹配这个选择器。默认情况下,查找操作是大小写

敏感的;添加 casesensitive="no" 可以改变默认设置。
 C  filename:name 属性指定文件名要与之匹配的模式。它本质上与 include 元素相同,以及与指定了negate="yes" 时

的 exclude 元素相同。
 D  present:从当前目录结构中选择如下文件:它们与指定的 targetdir 目录中的文件具有相同的名称和相对目录结构


 E  depend:这个选择器与 present 选择器具有相同的效果,只不过匹配的文件被限制到相对于 targetdir 位置中的对

应文件来说,最近已修改过的那些文件。
 F  date:这个选择器基于其最后修改日期选择文件。when 属性指定作比较的性质是 before、after 还是 equal,

datetime 属性指定与之作比较的日期和时间,这个日期和时间具有给定的固定格式 MM/DD/YYYY  HH:MM  AM_or_PM。注意

Windows 平台上有一个内置的 2 秒偏移,以允许底层文件系统的不精确性 —— 这可能导致匹配的文件数量超过预期。允许的回

旋时 间量可以使用 granularity 属性来更改(以毫秒为单位来指定)。
 G depth:这个选择器检查每个文件的目录结构层次数目。min 和/或 max 属性用于选择具有想要的目录层次数目的的文

件。
 选择那些大于 512 字节并且包含字符串“hello”的文件
  <fileset dir="dir">
      <and>
          <contains text="hello"/>
          <size value="512" when="more"/>
      </and>
 </fileset>

 对于自定义ant应用,现在自己还没有搞醒豁,弄清楚了再贴上来!!

1
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics