我正在尝试为Apache Ant编写自定义任务(在this tutorial之后)。
目前,我的任务如下:
package my.package;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
class MyTask extends Task
{
private String command;
public void setCommand(String command)
{
this.command = command;
}
public void execute() throws BuildException
{
System.out.println(command);
}
}
我在构建文件中使用如下任务:
<?xml version="1.0"?>
<project name="TaskExample" default="main" basedir=".">
<taskdef name="mytask" classname="my.package.MyTask"/>
<target name="main">
<mytask command="foobar" />
</target>
</project>
调用Ant时,出现以下错误:
> ant -lib .
Buildfile: /path/to/build.xml
main:
BUILD FAILED
/path/to/build.xml:6: Could not create type mytask as the class class my.package.MyTask has no compatible constructor
Total time: 0 seconds
答案 0 :(得分:4)
在键入问题时找到解决方案。但也许这对其他人有用:
我只是忘记了类声明中的public
限定符。因此,如下所述声明该类是完美的:
package my.package;
// ...
// Mind the "public"!
public class MyTask extends Task
{
// ...
}