2022年Ant脚本开发 .pdf

上传人:C****o 文档编号:39719763 上传时间:2022-09-07 格式:PDF 页数:20 大小:177.64KB
返回 下载 相关 举报
2022年Ant脚本开发 .pdf_第1页
第1页 / 共20页
2022年Ant脚本开发 .pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2022年Ant脚本开发 .pdf》由会员分享,可在线阅读,更多相关《2022年Ant脚本开发 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1/20Ant(Another Neat Tool)Ant 简介Ant(Another Neat Tool)主要是设计用于生成java项目的,但这并不是它唯一的用途。生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都是用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要了。C或 C+中的传统项目经常使用make工具来做这件事情,其中生成任务是通过调用shell 命令来执行的,而以来关系定义在每个构建文件之间,以便它们总是以必须的顺序执行。An

2、t 和 make 类似,它也定义构建文件之间的依赖关系;然而与使用特定与平台的 shell命令来实现生成过程所不同的是,它使用跨平台的 java类。使用 ant,你能够编写单个构建文件,这个构建文件在任何java平台上都是一致地操作(因为 Ant 本身是使用 java语言实现的);这就是 ant 最大的优势。Ant 的其他关键优势包括其突出的简单和无缝的使用自定义功能来扩展它的能力。Ant 概述Ant 没有定义它自己的自定义语法,它的构建文件是用XML编写的。存在一组 Ant 能够理解的预定义XML 元素(构建块)。每个构建文件是由单个project(工程)元素组成,该元素又包含一个或多个ta

3、rget(目标)元素。一个目标(target)是生成过程中已定义的一个步骤,它执行任意数量的任务。任务是构建文件中最小的构建块,它们解决构建中更小粒度的目标。这些任务完成具体的工作,包括编译源代码、打包等。每个任务对应为ant 对象模型中的一个 java对象。在 Ant 中不存在没有相应对象的任务,ant 中的每个任务都是对象。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -2/20例如:A simple project instroducing the use of descriptive tags in ant build files.如上所见在 Ant 中也可以

4、定义变量在Ant 中叫做特性。特性指标是字符串数据的名-值对。除了字符串以外,任何其它数据类型均不能以特性相关联。特性可以间接的与java SDK 中的 Property 对象相关。这说明通过使用特性文件(property file)或 JVM命令特性设置,你可以在构建是动态的定义特性。在Ant中的特性一经设置就不可更改,用$src.dir可以引用定义好的特性。元素加载了一个特性文件。此代码将在元素的 basedir 特性所指定的目录查找改特性文件。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -3/20Ant 常见文件操作1.创建和删除目录1.1 mkdir 创建一

5、个目录,如果某目录不存在,则创建该目录。如果需要还会创建其父目录。属性。第一个参数(all)表示 ant 版本,第二个参数表示类型,第三个参数表示是否必须存在dir(all,file,Y)要创建的目录。1.2 delete 删除文件和目录属性defaultexcludes(all,Boolean,N)确定是否使用默认排序模式,默认为true。dir(all,File,*)待删除的目录,包括其所有文件和子目录。excludes(all,String,N)要配出的文件模式的列表。它们是对默认排除模式的补充。excudesfile(all,String,N)每行包括一个排除模式的文件的文件名。fai

6、lonerror 如果为 true,此任务若失败,则构建过程失败。默认为true。file(all,File,*)要删除的文件的文件名。includeemptydirs(1.3,1.4,boolean,N)如果为 true,及时目录为空也将被删除。仅在使用嵌套是才有关系。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -4/20默认为 false。includes(all,String,N)要包含的文件模式的列表(用逗号隔开)。includesfile(all,File,N)每行包括一个包含模式的文件的文件名。quiet(1.3,1.4,boolean,N)如过为tru

7、e,若某个文件或目录不能被删除也不会失败。默认为false。verbose(all,Boolean,N)若为 true,则在文件删除是显示其名字。默认为false。dir 或 file 至少要取其一,或者要有一个嵌套。注意/被用作目录分隔符,这与平台无关,ant 知道如何处理它,并针对它运行所在的平台做恰当的事情。创建目录的时候父目录不是必须存在的。2.复制和移动文件及目录2.1 copy 将文件和目录复制到新位置。当目标文件不存在或源文件比目标文件更新是,文件才会被复制。属性file(all,File,*)指定要复制的一个文件。使用嵌套来复制多个文件。filtering(all,Boolea

8、n,N)如果为true,将使用某个全局构建文件过滤器来进行记号过滤。使用 指定的嵌套过滤器总是可用,而不论此属性如何。默认为false。flatten(all,Boolean,N)如果为true,则不保留源文件的目录结构,所有文件都将复制到一个目标目录。使用一个嵌套 也可以得到同样的结果。默认为false。includeemptydirs(all,boolean,N)如果为 ture,则空目录也将被复制。默认为true。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -5/20overwrite(all,Boolean,N)如果为 true,则及时目标文件更新也将复制文

9、件。默认为false。preservelastmodified(1.3,1.4,String,N)如果为 ture,则目标文件将指定为与源文件相同的最近修改时间戳。默认为false。todir(all,File,*)文件将被复制到的目标目录tofile 目标文件,仅当使用file 属性复制一个文件是可用。注意:要么必须设置file 属性,要么至少指定一个嵌套。若设置了 file 属性,则todir 或 tofile 属性必须设置其一。若使用了嵌套元素,则只允许设置todir。拷贝文件:拷贝文件到其它目录:拷贝多个文件:2.2 move 移动一个或多个文件和目录属性file(all,File,*

10、)指定要移动的一个文件。要移动多个文件和目录,要使用嵌套 filtering(all,boolean,N)如果为 ture,将使用某些全局构建文件过滤器进行记号过滤。无论此属性如何,嵌套过滤器均可用。默认为false。flatten(all,boolean,N)如果为 true,则源文件的目录结构不保留,将所有文件移动到一个目标目录下。一个嵌名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -6/20套也能得到同样的结果。默认为false。includeemptydirs(all,boolean,N)如果为 true,则空目录也将移动。默认为true。overwrite(

11、all,boolean,N)如果为 ture,则即使目标文件更新,文件也会移动。默认为false。todir(all,File,*)文件将移动至的目录。tofile(all,File,*)要移动到的文件。必须有一个file 或一个嵌套fileset 元素。若使用file 属性,则tofile 或者 todir 是必须的。若使用嵌套fileset,则仅允许todir,而这也是必要的。重命名文件:移动文件到其它目录:3.替换文件中的标记3.1 replace 完成字符串替换,在一个或多个文件中完成字符串替换。源文件将被替换而不是复制。属性defaultextcludes(all,boolean,N

12、)确定是否使用默认配出模式。默认为true。dir(all,File,*)在指定多个文件是所用的基目录。excludes(all,String,N)要排除的文件模式列表,是默认排除模式的补充。excludesfile(all,File,N)每行包括一个排除模式的文件的文件夹file(all,File,*)在其中完成替换的单个的文件。includes(all,String,N)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -7/20要包含的文件模式的列表。includesfile(all,file,n)每行包括一个包含模式的文件的文件名。propertyfile(1.3

13、,1.4,File,*)指定一个特性文件,其中包含嵌套 元素引用的特性。summary(1.4,boolean,N)如果为 true,在显示此操作的一个汇总报告。默认为false。token(all,String,*)要替换的记号value(all,String,N)记号的新值默认值为以空字符串。在 file 获 dir 中必取其一。如果使用了一个嵌套元素,则需要token 属性。如果指定了一个嵌套 元素的 property 属性,则propertyfile 属性是必要的。token 属性指定要查找的字符串,value 属性指定一个新的字符串,查找到的标记字符串的所有实力都被替换为这个新的字符

14、串。替换操作将在文件本身之内的适当位置进行。为了提供更详细的输出,可以把summary 属性设置为 true。这将导致改任务输出找到和替换的标记字符串实例的数码。4.压缩解压可以使用 overwrite 属性来控制覆盖行为,默认设置是覆盖与正在被提取的归档文件中的条目相匹配的所有现有文件。4.1 zip包zip 压缩文件属性:略 Unzip:解压缩一个zip 文件,一个jar 文件或一个war 文件属性名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 20 页 -8/20Dest(all,file,Y)目标目录Src(all,File,Y)要展开的文件。Overwrite(1.4,

15、boolean,N)如果为 true,及时文件比压缩文件中的还要新,也将对文件进行重写。默认为 true 4.2 jar包jar:由一个或多个源文件和目录创建一个jar 文件属性basedir(all,file,N)包括要增加到 jar 文件中的文件的基目录。compress(all,Boolean,N)如果为 true,则压缩 jar 文件。默认为 true。defaultexcludes(all,boolean,N)确定是否使用默认排除模式。默认为true。encoding(1.4,String,N)指定 jar 文件中的文件名字符编码。默认为UTF-8。excludes(all,Stri

16、ng,N)要排除的文件模式列表(用逗号分隔),它们是默认排除模式的补充。excludesfile(all,file,N)每行包括一个排除模式的文件的文件名。filesonly(1.4,boolean,N)如果为 ture,则不创建空目录。默认为false。includes(all,String,N)要包含的文件模式的列表(用逗号隔开)。includesfile(all,File,N)每行包括一个包含模式的文件的文件名。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 20 页 -9/20jarfile(all,File,Y)要创建的 jar 文件的文件名manifest(all,F

17、ile,N)要至于 jar 文件中的一个现有清单文件的文件名。如果未指定,ant 会生成一个型的清单文件,其中包含有所用ant 的版本。update(1.4,boolean,N)如果为 true,则发生修改时更新现有jar 文件,而不是将其删除并从头重新创建。默认为 false。whenempty(all,Enum,N)未找到输入文件是所采取的操作。默认为create。合法值为:fail 终止创建。skip 不创建 jar 文件create 若无文件,则创建一个空的jar 文件。4.3 tar包tar:创建一个 tar 压缩文件属性basedir(all,File,N)指定基目录,由此向tar

18、 文件增加文件。defaultexeludes(all,boolean,N)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 20 页 -10/20确定是否使用默认配出模式。默认为true。excludes(all,String,N)要配出的文件模式列表excludesfile(all,File,N)每行包括一个排除模式的文件的文件名。Includes(all,String,N)要包含的文件模式的列表includesfile(all,File,N)每行包括一个包含模式的文件的文件名longfile(1.3,1.4,String,N)对于带有长文件名(超过100 字符)的文件,对其处

19、理加以控制。合法的值为 truncate、fail、warn、omit 和 gnu。默认为 warn。tarfile(all,File,Y)要创建的文件。压缩:untar:解压所 tar 文件属性:略解压:4.4 gzip包gzip:创建一个 Gzip压缩文件属性src(all,file,Y)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 20 页 -11/20要压缩的文件的文件名。zipfile(all,file,Y)要创建的文件的文件名。解压一个 Gzip文件,只有当目标文件不存在或比源文件老时才解压此文件。属性dest(all,String,N)目标文件或目录名。如果忽略

20、,在dest 默认为包含源文件的目录。若dest为一个目录,则目标文件夹为src名,并去掉任何.gz扩展名。src(all,String,N)待解压缩的文件名。gunzip解压缩 gzip文件属性:略 其它常用操作1.使用 ant 编译源文件Javac:编译 java 源代码。此任务将.java 文件与.class文件进行比较。若不存在类文件或源文件比起相应的类文件更新,那么有关的原文将将得到编译。属性bootclasspath(all,path,N)要使用的启动类路径。bootclasspathref(all,reference,N)对构建文件中某处定义的一个启动类路径的引用。classpa

21、th(all,Path,N)要使用的类路径。除非fork=”true”,否则它将增加到Ant 的类路径中。classpathref(all,reference,N)在构建文件中某处定义的一个类路径的引用。debug(all,boolean,N)名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 20 页 -12/20如果为 ture,则编译源代码是带有调试信息。默认为false。defaultexcludes(all,boolean,N)确定是否使用默认配出模式,默认为true。depend(all,boolean,N)如果为 true,则对于支持以来关系检查的编辑器,启用以来关系

22、检查。默认为false。deprecation(all,boolean,N)如果为 true,则显示废弃警告。默认为false。destdir(all,file,N)类文件的目标目录。encoding(all,String,N)源文件的字符编码。excludes(all,String,N)要排除的五年间模式列表,它们是对默认排除模式的补充。excludesfile(all,File,N)每行包括一个排除模式的文件的文件名。extdirs(all,Path,N)覆盖 java 安装可选包的一般位置。failonerror(1.3,1.4,boolean,N)如果为 true,则当出现错误是构建失

23、败。默认为true。fork(1.4,boolean,N)如果为true,则将java 编译器执行为一个当读的进程。若得到设置,此属性将覆盖plier 特性,而且ant 执行 JAVA_HOME/bin中实际的java 可执行程序,而不是编译器的 Mainlei。默认为false。includeantruntim(1.3,1.4,boolean,N)如果为 true,则将 ant 运行时库包括在类路径中。默认为true。includejavaruntime(1.3,1.4,boolean,N)如果为 true,则包括来自正在执行的VM 的默认运行是库。默认为false。includes(all

24、,String,N)要包含的文件模式的列表includesfile(all,File,N)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 20 页 -13/20每行包含一个包含模式的文件的文件名。memoryinitialsize(1.4,String,N)仅当 fork=true 是正常工作。为VM 指定初始内存大小memorymaximumsize(1.4,String,N)仅当 fork=true 是正常工作。为VM 指定最大内存大小nowarn(1.4,boolean,N)如果为 true,则将-nowarn 开关传递给编译器。默认为false。optimize(all

25、,boolean,N)如果为 true,子知识编译器对代码进行优化。默认为false。source(1.4.1,string,N)如果指定,此属性的文本将作为-source 命令行选项传递给帝城的javac 可执行程序。合法的值为 1.3 和 1.4.若传递 1.4,则允许jdk1.4 使用其新声明的功能。srcdir(all,Path,*)源代码文件的位置。target(all,String,N)为一个特定的VM 版本生成类文件。verbose(all,boolean,N)如果为 true,则知识编译器生成显示输出。默认为false。除非指定了嵌套src)元素,否则srcdir 属性是必须的

26、。2.模式匹配*:匹配零个或多个字符名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 20 页 -14/20?:匹配一个字符*:匹配任意数量的目录模式:*/*.java 将匹配当前目录下的所有java 文件3.时间戳tstamp 设置 DSTAMP,TSTAMP和 TODAY特性。另外,每个特性按照下表所列的格式使用 java.text.SimpleDataFormat进行格式化。特性格式示例DSTAMP yyyyMMdd 20090909 TSTAMP HHmm 1959 TODAY MMMM d yyyy September 15 2009 属性无内容0 到 n 个嵌套 元素

27、(1.3,1.4)支持定制格式。每个结果置于一种特性中。元素属性;Property(1.3,1.4,String,Y)格式化的时间戳所置于的特性的特性名。Pattern(1.3,1.4,String,Y)由 java.text.SimpleDataFormat定义的格式模式。Offset(1.3,1.4,int,N)与当前时间的数字偏移量。Unit(1.3,1.4,String,N)定义偏移量参数的单位。合法的值为:millisecond,second,minute,hour,day,week,month 和 year Locale(1.4,String,N)构造 SimpleDataForm

28、at对象所用的场所约定。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 20 页 -15/20 Ant 知识扩展1.Ant中的 DataType 1.1 概述在使用 Ant 时,DataType是非常重要,其中fileset 就是 DataType的一种,一下列出其它可用的DataType。argument 对于由一个 ant 构建文件调用的程序,向其传递命令行参数。environment 对于由一个 ant 构建文件调用的外部命令或程序,指定想起传递的环境变量。filelist 定义一个文件的命名列表,这些文件无需确实存在。fileset 定义一个文件的命名列表,这些文件必须

29、确实存在。patternset 将一组模式分组在一起。filterset 将一组过滤器分组在一起。path 以某种在不同操作系统间可移植的方式指定路径(如类路径)。mapper 定义一组输入文件和一组输出文件间的一个复杂关系。Ant datatype见于org.apache.tools.ant.types包,通常由org.apache.tools.ant.types.DataType 基 类 派 生 得 到。EnumeratedAttribute、Commandline、Environment 和 reference 也被看做是 DataType,不过它们不是由名师资料总结-精品资料欢迎下载-

30、名师精心整理-第 15 页,共 20 页 -16/20DataType派生。XML属性类型总结类型名由 实现描述Boolean N/A 完成不区分大小写的字符串比较,将on、true和 yes转换为 true。所有其它值均转换为 false Enum Org.apache.tools.ant.types.EnumeratedAttribute 用于允许有固定的字符串值集合的情况File java.io.File 指定某个文件或目录的名字。除非另作说明,否则文件和目录名都是相对于工程基目录的。int、long N/A 诸如java.lang.Integer 等标准 java 类型包装类会处理此类

31、转换,即将构建文件中的文本转换为基本类型Path Org.apache.tools.ant.types.Path 最 常 用 于classpath 和sourcepath 属性,表示一个用:或;分隔的路径列表。Reference Org.apache.tools.ant.types.Reference 常用也 refid 属性,并包括对某处定义的一个类型 id 的引用。String java.lang.string 这是Ant 中最常用的类型。字符串(及其它属性)要服从 XML类型限制。例如,字符必须写为<名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 20 页 -17/

32、201.2 fileset和 path 有时候我们会用到path 和 fileset,所以在这里重点介绍一下,其它的虽然没用到但也是很重要的,希望读者自学。1.2.1 fileset DataType fileset DateType定义了一组文件,并通常表示为 元素。不过许多 Ant任务构成隐式的(implicit)fileset,这说明它们支持所有fileset 属性和嵌套元素。与 filelist 类型不同,由 fileset 表示的文件必须存在。Fileset 还可能指定为目标级构建文件元素(即 的子元素),并由其 id 引用。一下为 fileset 属性列表:dir(all,Path

33、,Y):fileset 的基目录。casesensitive(1.4.1,boolean,N):如果置为 false,那么在匹配文件名是,fileset 不是区分大小写的。其默认值是 true。Ant1.4.1 以前的版本使用区分大小写的匹配。defaultexcludes(all,boolean,N):确定是否使用默认的排除模式。默认为true。默认的排除模式包括*/*、*/#*#、*/.#*、*/%*%、*/CVS、*/CVS/*、*/.cvsignore、*/SCCS、*/SCCS/*和*/vssver.scc。excludes(all,String,N):用逗号分隔的需要排除文件模式列

34、表。这是对默认排除模式的补充。includes(all,String,N):用逗号分隔的需要包含的文件模式列表。includesfile(all,File,N):每行包括一个包含模式的文件的文件名。除了以上列出的属性外,fileset 还可能包括一下元素:0 到 n 个嵌套 patternset 元素:、(all);,。示例:下一个示例使用嵌套的 和标签,取代了 includes和 excludes属性:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 20 页 -18/20 1.2.2 Path DataType Path DataType出现的很频繁,而且有时候被成为路径形式

35、的(path-like)结构。它可能用作为一个属性或一个嵌套元素。Path DataType最常用于表示一个类路径,不过也可以用于表示其它用途的路径。在用作一个属性时,路径中的各项用分号或冒号隔开,在构建是,此分隔符将代之以前平台所用的路径分隔符。与其它 DataType类似,path datatype 并不总是由 XML元素表示。例如,javac任务就接受由 path DataType实现的嵌套 元素,path 属性:location(all,File,*):表示一个文件或目录。Ant 在内部将此扩展为一个绝对文件名。path(all,String,*)一个文件和路径名列表。refid(al

36、l,Reference,*)对当前构建文件中某处定义的一个path 的应用。如果想在构建文件多出应用同一个路径定义,这将是有用的。Localtion 和 path 均是可选的,除非指定到了refid(在这种情况下,location 和path 都不允许使用)。指定了 refid 是就不能在由牵头元素。示例:1、对于一个由两个 jar 文件和两个目录所组成的路径,以下即为如何用一个路径形式的结构来表示此路径。这个路径按构建文件中所列的顺序构建:2、Path DataType还支持一种简写语法。例如,假设我们在一个任务中用classpath元素来定义一个路径:名师资料总结-精品资料欢迎下载-名师精

37、心整理-第 18 页,共 20 页 -19/20 简写为:3、location 属性的工作是类似的。在路径形式的结构中可以嵌套一个或多个fileset 在此例中,fileset 包括了由$libdir所指定目录下任何目录中的所有.jar 文件。1.自定义任务正如我们前面看到的,ant 非常强大,具有涵盖广泛功能集的许多核心任务。但是ant 的真正力量在于它的易扩展型。2.1 创建自定义的任务为实现一个简单的自定义任务,我们所需要做的就是扩展org.apache.tools.ant.Task类,并重写execute()方法。import org.zpache.tools.ant.BuildExc

38、eption;import org.apache.tools.ant.Task;public class MyTask extends Task Public void execute()throws BuildException 1.2 使用自定义任务在能够调用自定义的任务之前,我盟需要给他指定一个名称来定义它,并告诉 Ant关于实现这个任务的类文件的信息,以及定位该类文件所必须的任何classpath 设置。名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 20 页 -20/20这是使用taskdef 任务来完成的,入下所示:现在可以像使用Ant 的核心任务一样使用这个自定义

39、的任务了,如下例:Taskdef:下当前工程增加任务。它用于定义为在ant.jar 的 default.properties文件中定义的任务。属性classname(all,String,*)实现此任务的类。classpath(all,Paht,N)所用的类路径。file(1.4,File,N)包含一个或多个任务定义的特性文件的文件名。每一行的格式如下:Taskname=full.package.name.TaskClass name(all,String,*)任务名。resource(1.4,String,N)包含一个或多个任务定义的特性文件的java 资源名。它相当于file 属性,不过在此使用一个 ClassLoader来查找特性文件。除非指定了file 或 resource 属性,否则name 和 classname 属性就是必须的。名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 20 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁