我正在尝试为 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
最佳答案
在输入问题的同时找到了解决方案。但也许这对其他人有用:
我只是忘记了类声明中的 public
限定符。因此,按如下方式声明类非常有效:
package my.package;
// ...
// Mind the "public"!
public class MyTask extends Task
{
// ...
}
关于java - 自定义 Ant 任务上的 "No compatible constructor"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498141/