2013-03-19 1 views
1

Apache Ant (다음은 this tutorial)에 대한 사용자 지정 작업을 작성하려고합니다.사용자 지정 Ant 작업에 "호환 가능한 생성자가 없습니다"?

현재, 내 작업은 다음과 같습니다 : 다음과 같이

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 

답변

4

질문을 입력하면서 해결책을 찾았습니다. 하지만 어쩌면 다른 사람에게 유용 할 수 있습니다.

클래스 선언에 public 한정자를 잊어 버렸을뿐입니다. 따라서 클래스를 다음과 같이 선언하면 완벽하게 작동합니다.

package my.package; 

// ... 

// Mind the "public"! 
public class MyTask extends Task 
{ 
    // ... 
} 
관련 문제