Apache Ant学习笔记之三(转载)
Apache Ant学习笔记之三
©zdon
16.把java代码转换成html文档:
<taskdef name="java2html" classname="com.java2html.Java2HTMLTask" /> <target name="javacode" depends="javadoc"> <java2html title="${project.name.info}version(${project.version.info}) Source Code Online View" simple="no" tabsize="4" marginsize="2" header="true" footer="true" encoding="UTF-8" destination="${code.dir}"> <fileset dir="${src.dir}"> <include name="**/*.java"/> </fileset> <javadoc localRef="${doc.dir}" /> </java2html> </target> |
关键字taskdef可以让用户自定义自己的task,然后通过taskdef来声明,这样就实现了ant的无限扩展了。Taskdef至少要指明name和classname。Name用来指定这个task的任务的标签名,像javadoc这样的就是标签名(javadoc是ant内置的task),classpath就是这个标签名的要执行的类的方法名。java2html是一个把java代码转换成html文档的工具。
17.使用VSS:
<!-- VSS配置 --> |
<!-- 从Vss中获取最新版本 --> |
18.输出:
<target name="startbanner"> |
18.邮件警报任务:可以把以上这些任务的输出警告发送到制定的用户列表中,这个任务可以设置每天自动运行。
<!-- =============================================== --> |
19.Ant调用系统命令或外部程序
Windows下:
没有参数的情况: <?xml version="1.0" ?> <project name="testExec" default="test"> <target name="test"> <exec executable="cmd.exe"> <arg line="/c dir"/> </exec> </target> </project> 有参数的情况: <?xml version="1.0" ?> <project name="testExec" default="test"> <target name="test"> <exec executable="cmd.exe"> <arg line="/c dir /o-d"/> </exec> </target> </project> |
Unix下:
没有参数的情况: <?xml version="1.0" ?> <project name="testExec" default="test"> <target name="test"> <exec executable="/bin/sh"> <arg line="-c ls" /> </exec> </target> </project> 有参数的情况: 加引号: <?xml version="1.0" ?> <project name="testExec" default="test"> <target name="test"> <exec executable="/bin/sh"> <arg line="-c 'ls –ltr'" /> </exec> </target> </project> |
通过Shell调用,Windows必须加 /c,Unix则是加 –c 。
不论是Windows还是Unix,调用一个程序后都必须等到该操作结束才能继续作下面的操作。如果你想调用一个程序的同时还做其它的工作,必须使用<parallel>:
<?xml version="1.0" ?> <project name="testExec" default="test"> <target name="test"> <exec executable="notepad.exe"/> <echo message="You must close notepad first!"/> <parallel> <exec executable="notepad.exe"/> <echo message="You do not need to close notepad."/> <parallel> </target> </project> |
20.CVS:
21.Xdoclet任务:(参见XDoclet笔记)
•Ant使用的一些补充:
project可以有如下的属性attribute:
|
Target有如下的属性:
|
Task的通用结构如下:
<name attribute1="value1" attribute2="value2" ... /> name是task的名字,attributeN是属性(attribute)的名字,而valueN则是属性(attribute)的值 |
一个属性(property)由名字和值对应起来。名字是大小写敏感的。
内建的Properties:
basedir 项目的绝对路径 (就像在<project>的basedir属性中定义中的一样) ant.file 编译文件的绝对路径 ant.version Ant的版本 ant.project.name 正在执行的项目的名字,(就像在<project>的name属性中设置的那样). ant.java.version JVM的版本,其值可能是"1.1", "1.2", "1.3" and "1.4". |
如果你的系统是UNIX并且正在使用Bash外壳,在~/.bash_profile文件中加入以下数行: JAVA_HOME=<JAVA_HOME> ANT_HOME=<ANT_HOME> PATH=$PATH:<JAVA_HOME>/bin:<ANT_HOME>/bin export JAVA_HOME ANT_HOME PATH 运用其他外壳的用户应该改写这段脚本并且编辑合适的配置文件。为更新系统环境,输入.~/.bash_profile。为测试是否成功安装,在终端窗口输入java 和ant 命令。系统会发现这些命令并运行之。 |