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

来源:互联网 发布:淘宝的便宜会员全没了 编辑:程序博客网 时间:2024/05/06 21:01

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" />


 

原创粉丝点击