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