ant 使用命名空间自定义task

一:

首先,写三个ant 任务 (每个任务都必须继承org.apache.tools.ant.Task)

 

1:
package cn.cloud.ant;  
  
import org.apache.tools.ant.BuildException;  
import org.apache.tools.ant.Task;  
public class DetailTask extends Task  
{  
    public void execute() throws BuildException  
    {  
        System.out.println("detail can be execute");  
    }  
} 

2:
package cn.cloud.ant;  
  
import org.apache.tools.ant.BuildException;  
import org.apache.tools.ant.Task;  
public class ListTask extends Task   
{  
    public void execute() throws BuildException  
    {  
        System.out.println("this is list task");  
    }  
}  

3:
package cn.cloud.ant;  
  
import org.apache.tools.ant.BuildException;  
import org.apache.tools.ant.Task;  
public class ShowTask extends Task  
{  
    public void execute() throws BuildException  
    {  
        System.out.println("show task");  
    }  
}  

三:编写antlib.xml文件(该文件需要放在src跟目录下)
  1. <?xml version="1.0"?>  
  2.   
  3. <antlib>  
  4.    <taskdef name="mylist" classname="cn.cloud.ant.ListTask"/>  
  5.    <taskdef name="myshow" classname="cn.cloud.ant.ShowTask"/>  
  6.    <taskdef name="mydetail" classname="cn.cloud.ant.DetailTask"/>  
  7. </antlib>  

四:编写ant脚本build.xnl
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <project name="ext_task" basedir="." xmlns:my="xxx" default="message-echo">  
  4.       
  5.     <property name="base.dir" location="target"></property>  
  6.     <property name="src.dir" location="src"></property>  
  7.     <property name="class.dir" location="${base.dir}/classes"></property>  
  8.       
  9.     <target name="Introduction">  
  10.         <echo>this is my first ant task</echo>  
  11.         <echo>${basedir}</echo>  
  12.         <echo>this is my first ant task</echo>  
  13.     </target>  
  14.       
  15.     <target name="clean" depends="Introduction">  
  16.         <delete dir="${base.dir}"></delete>  
  17.     </target>  
  18.       
  19.     <target name="init" depends="clean">  
  20.         <mkdir dir="${base.dir}"></mkdir>  
  21.         <mkdir dir="${class.dir}"></mkdir>  
  22.     </target>  
  23.       
  24.     <target name="compile" depends="init">  
  25.         <javac includeantruntime="true" destdir="${class.dir}" srcdir="${src.dir}" target="1.7"></javac>  
  26.         <copy todir="${class.dir}">  
  27.             <fileset dir="${src.dir}">  
  28.                 <exclude name="**/*.java"/>  
  29.             </fileset>  
  30.         </copy>  
  31.     </target>  
  32.       
  33.     <target name="init-task-def" depends="compile">  
  34.         <echo>define .................</echo>  
  35.         <taskdef resource="antlib.xml" uri="xxx">  
  36.             <classpath path="${class.dir}"></classpath>  
  37.         </taskdef>  
  38.     </target>  
  39.   
  40.     <target name="message-echo" depends="init-task-def">  
  41.         <my:mylist />  
  42.         <my:myshow />  
  43.         <my:mydetail />  
  44.     </target>  
  45.       
  46. </project>  

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值