package com.mydomain;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
public class MyVeryOwnTask 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;
}
}
并且为了使用build.xml:
<?xml version="1.0"?>
<project name="OwnTaskExample" default="main" basedir=".">
<taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask"/>
<target name="main">
<mytask message="Hello World! MyVeryOwnTask works!"/>
</target>
</project>
我的问题是,我应该在哪里放置MyVeryOwnTask.java文件,它应该是.jar文件吗? 它应该以某种方式与build.xml文件相关吗? com.mydomain.MyVeryOwnTask它表示像eclipse中的java项目一样的文件结构吗?
我的ant目录是C:\ ant。 我有所有的环境变量集。
感谢。
答案 0 :(得分:2)
最好的方法是将它放在一个jar文件中,然后在指向jar的<classpath>
内添加<taskdef>
:
<taskdef name="mytask" classname="com.mydomain.MyVeryOwnTask">
<classpath>
<fileset file="mytask.jar"/>
</classpath>
</taskdef>
您可以将jar放在ant自己的lib目录中,然后您不需要类路径,但是如上所述使用显式的classpath元素意味着您的构建文件将使用标准的未修改的ant安装,因此这是一个好习惯特别是如果你要与其他开发人员合作,那就特别了。