主要内容:
1 java的构建工具ant
2 ant 的projects,targets,tasks,properties
3 简单的ant 构建文件
5.3.1
xml和html
xml:extensible markup language 可扩展标记语言
1) html表现的是如何在网页上显示数据,他定义了一套标准的标签。
2) Html的标签有开始标签,可以没有结束标签如:《p》….《/p》也可以《p》而xml则必须匹配开始和结束标签
3) Xml的标签的嵌套必须正确而html则不必如:《b》《i》this is not valid in xml《/b》《/i》
4) Xml的标签是大小写敏感的,html则不是
元素:一个开始标签和一个结束标签定义了一个元素。
属性:开始标签中的名-值对是属性
xml中的注释:《! - - do something here - - 》
空元素的写法:《java classname=”Hello.class”》《/java》或《java classname=”Hello.class” /》
5.3.2 ant 的默认构建描述文件是build.xml
在eclipse中运行ant脚本:在build.xml上右键选择run ant 可在控制台中显示结果
ant已集成到eclipse中,如果要得到新版本的ant,则其下载地址是:http://ant.apache.org
A 《project》
|
属性 |
描述 |
是否必须 |
|
default |
要运行的默认目标 |
Y |
|
name |
项目名 |
N |
|
basedir |
基目录 |
N |
|
description |
项目描述 |
N |
《project name=”Hello” default=”compile” basedir=”.” Description=”Hello,World build file”》
‘.’代表的是build.xml所在的目录
可以嵌套的标签《description》《target》《property》
B Targets
|
属性 |
描述 |
是否必须 |
|
name |
目标名 |
Y |
|
depends |
依赖列表 |
N |
|
if |
指定属性被设置时执行 |
N |
|
unless |
当指定属性未被设置时执行 |
N |
|
description |
目标描述 |
N |
《target name=”compile” depends=”init” description =”Compile all sources”》
C Tasks
《buildnumber》从文件中读取构建的计数器每构建一次计数器加一写回文件
|
属性 |
描述 |
是否必须 |
|
file |
读取的属性默认build.number |
N |
《buildnumber file=”buildnum.txt” /》
copy任务属性
|
属性 |
描述 |
是否必须 |
|
file |
源文件名 |
Y,除非使用fileset |
|
tofile |
目标文件名 |
Y,除非使用 todir |
|
todir |
目标目录 |
Y,如果多于1个文件 |
|
overwrite |
覆盖较新的目标文件 |
N,默认false |
|
includeEmptyDirs |
拷贝空目录 |
N,默认true |
|
failonerror |
文件未发现停止构建 |
N,默认true |
|
verbose |
列出拷贝文件 |
N,默认false |
《copy file=”log4j.properties” todir=”bin” /》
《copy》拷贝一个文件file 属性 拷贝一组文件 《fileset》 元素嵌套
delete任务属性
|
属性 |
描述 |
是否必须 |
|
file |
要删除的文件 |
Y,除非是dir或fileset |
|
dir |
要删除的目录 |
Y,除非file fileset |
|
verbose |
删除文件列表 |
N,默认false |
|
failonerror |
有错误停在 |
N,默认true |
|
includeEmptyDirs |
删除的目录当fileset指定 |
N,默认false |
《delete file=”ant.log” /》
《delete dir=”temp” /》
《delete》 删除一个文件使用file属性,一组文件用《fileset》元素嵌套或目录用 directory属性
echo任务属性:
《echo》向终端,文件写信息
|
属性 |
描述 |
是否必须 |
|
message |
信息 |
Y,除非文本做为元素内容 |
|
file |
输出文件 |
N |
|
append |
是否追加到文件 |
N,默认false |
《echo messag=”Hello” /》
《echo》this is a Message form ant 《/echo》
jar任务属性:
《jar》将一组文件压缩为一个jar文件
|
属性 |
描述 |
是否必须 |
|
destfile |
Jar文件名 |
Y |
|
basedir |
要打包的目录 |
N |
|
includes |
包含的文件 |
N |
|
excludes |
排除的文件 |
N |
《jar destfile=”dist/persistence.jar” basedir=”bin” includes=”org/ecli/persis/**,org/ecli/astr/**” excludes=”*Text*.class” /》
《jar destfile="dist/persistence.jar"》
《include name="**/*.class"/》
《exclude name="**/*Test*"/》
《/jar》
java任务属性:
《java》 可以嵌套的元素《classpath》用来替代classpath属性
|
属性 |
描述 |
是否必须 |
|
classname |
要运行的类名 |
Y,除非指定jar |
|
jar |
执行的jar |
Y,除非指定clsssname |
|
classpath |
使用的类路径 |
N |
|
fork |
是否使用较新的JVM |
N,默认false |
|
failonerror |
错误发生是否停止 |
N,默认false |
|
output |
输出文件 |
N |
|
append |
追加或覆盖默认文件 |
N |
《java classname="HelloWorld"/》
《java classname="Add" classpath="${basedir}/bin"》
《arg value="100"/》
《arg value="200"/》
《/java》
《arg》 指定命令行参数
javac任务属性:
《javac》 编译java文件 可以嵌套的元素《classpath》《jar》
|
属性 |
描述 |
是否必须 |
|
srcdir |
源目录 |
Y,除非src使用 |
|
destdir |
输出目录 |
N |
|
includes |
包含的编译文件 |
N,默认包含所有java文件 |
|
excludes |
忽略的文件 |
N |
|
classpath |
使用的类路径 |
N |
|
debug |
是否包含调试信息 |
N,默认false |
|
optimize |
|