中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 综合文章
自己写Ant Task
作者:未知 时间:2005-07-27 22:47 出处:CSDN 责编:chinaitpower
              摘要:自己写Ant Task

写完代码生成的框架,少不了需要ant来调用。

写Ant Task其实很简单,看看下面这篇Turtorial就可以了。

http://ant.apache.org/manual/tutorial-writing-tasks.html

上文可浓缩到三句话里:
1.写一个Java类,继承于org.apache.tools.ant.Task。(不继承也可以的,如果不需要那些辅助)
2.实现execute()方法,Ant就会进行调用。
3.参数要从build.xml传入时,Task类只需拥有同名的变量和setter函数,Ant就会为你注入。

1.Ant Task的标准实现

import org.apache.tools.ant.Task;
public class HelloWorld extends Task
{
String msg;
public void execute()
{
  System.out.println(msg);
}
public void setMsg(String msg)

  this.msg = msg;
}
}

将上面的文件编译打包成helloworld.jar

build.xml调用如下
<target description="Use the Task">
  <taskdef name="helloworld" classname="HelloWorld" classpath="helloworld.jar"/>
  <helloworld msg="Hello World"/>
</target>


另外
1.取得build.xml中的公共变量:projectName = getProject().getProperty("project.name");

2.取得复合的属性就要复杂一点,该模式可以扩展到比下面复杂得多的情况。
<target>
  <helloworld>
     <message msg="Hello "/>
     <message msg="World"/>
  </helloworld>
</target>

1.先定义叫Message的内部类以表示Message节点,该类有一个msg属性,同样有一个setter函数,使其可以在build.xml中赋值


public class Message extends Object
{
  public Message()
  {  }
  String msg;
  public void setMsg(String msg)  {    this.msg = msg;  }
  public String getMsg() {    return msg;  }
}

2.再根据Ant的框架,定义给Helloworld注入message的createXXX函数和持有Message列表的messages对象,ant就会为你完成自动注入。

Vector msgs = new Vector();
public Message createMessage()
{
  Message msg = new Message();
  messages.add(msg);
  return msg;
}



关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有