ant脚本和java程序间的互相调用

1、ant脚本调用java程序

1)建立一个java类,继承ant的Task类,重写它的excute()方法

package org.example;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
  
public class ExampleTask extends Task {
   private String msg;
  
   // The method executing the task
   public void execute() throws BuildException {
     System.out.println(msg);
   }
   // The setter for the "message" attribute
   public void setMessage(String msg) {
     this.msg = msg;
   }
}

2)ant脚本

<?xml version="1.0"?>
<project name="ExampleTask" default="main" basedir=".">
   <taskdef name="mytask" classname="org.example.ExampleTask">
      <classpath>
        <pathelement location="./classes" />
      </classpath>
   </taskdef>
   <target name="main">
      <mytask message="this is a example." />
   </target>
</project>

 

2、ant脚本调用java程序

1)ant脚本

<?xml version="1.0"?>
<project name="ant4J" default="main" basedir=".">
   <target name="main">
     <echo message="ant file for java " />
   </target>
</project>

2)java

package org.example;
import java.io.File;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
 
public class AntExample {
   public static void main(String[] args) {
     File buildFile = new File("example.xml");
     Project p = new Project();
     try {
       p.fireBuildStarted();
       p.init();
       ProjectHelper helper = ProjectHelper.getProjectHelper();
       helper.parse(p, buildFile);
       p.executeTarget(p.getDefaultTarget());
       p.fireBuildFinished(null);
   } catch (BuildException e) {
       p.fireBuildFinished(e);
   }
  }
}


3、taskdef

定义一个task,当自定义了一个自己的任务,或者需要引入不是ant自带的任务时,使用这个标签来定义。

 <path id="xdoclet.task.classpath">
     <fileset dir="${xdoclet.home}/lib">
       <include name="**/*.jar"/>
     </fileset>
     <fileset dir="${xdoclet.home}/plugins">
        <include name="**/*.jar"/>
     </fileset>
 </path>

 <taskdef 
    name="xdoclet"
    classname="org.xdoclet.ant.XDocletTask"
    classpathref="xdoclet.task.classpath"
 />


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值