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至少要指明nameclassnameName用来指定这个task的任务的标签名,像javadoc这样的就是标签名(javadocant内置的task)classpath就是这个标签名的要执行的类的方法名。java2html是一个把java代码转换成html文档的工具。

17.使用VSS

     <!-- VSS配置 -->
    <property name="vss.ssdir" value="D:\Program Files\vss\win32\"/>
    <property name="vss.svrdir" value="Z:"/>
    <property name="vss.path" value="/fog/implement"/>

 

<!-- Vss中获取最新版本 -->
<target name="getVersion" depends="">
  <vssget vsspath="${vss.path}" localpath="." login="codeline,codeline"           ssdir="${vss.ssdir}" serverPath="${vss.svrdir}" autoresponse="N" recursive="true"
                quiet="true" />
</target>

18.出:

<target name="startbanner">
  <echo>+---------------------------------------+</echo>
  <echo>+    Building ${name} Component         +</echo>
  <echo>+---------------------------------------+</echo>
</target>

18.件警可以把以上些任出警告送到制定的用列表中,个任可以天自运行。

   <!-- =============================================== -->
  <!-- 
目标mail:将测试结果发到信箱中。                 -->
  <!-- ================================================ -->
<target name="mail" depends="test">
  <mail mailhost="smtp.your.mailserver.com" subject="Test build">
      <from address="yourname@your.mailserver.com"/>
      <to address="yourname@your.mailserver.com"/>
      <message>The nightly build/test has completed</message>
      <fileset dir="${report_html}">
           <include name="*.html"/>
      </fileset>
  </mail>
</target>

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 /cUnix是加 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

 

attribute

说明

是否必须

name

项目名称

No

default

当没有target支持时,缺省使用的target

Yes.

basedir

基目录,其它的目录都是相对于此. 这个attribute可以被"basedir" property 覆盖。当"basedir" property设置后,basedir attribute就不起作用了。如果两者都没有设置,则buildfile本身的父目录作为基目录。

No

     Target有如下的属性:

 

属性(attribute)

说明

是否必须

name

Target的名字

Yes

depends

依赖target列表

No

if

要执行target,某属性(attribute)必须要被设置

No

unless

要执行target,某属性(attribute)必须不能被设置

No

description

有关target功能的简短说明

No

     Task的通用结构如下:

  <name attribute1="value1" attribute2="value2" ... />

nametask的名字,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 命令。系统会发现这些命令并运行之。

posted @ 2008-12-03 17:09  zhanlh  阅读(344)  评论(0编辑  收藏  举报