java - 找不到 taskdef ant 任务

标签 java ant task

全部 -

我正在遵循此页面上最简单的说明:

http://ant.apache.org/manual/develop.html

但是,当我尝试执行目标“main”时,我在 netbeans 中遇到了这个错误:

taskdef class dec102012.MyAntTask cannot be found using the classloader AntClassLoader[]

但是这个错误没有意义,因为我扩展“任务”的新 Java 类看起来像这样:

package dec102012;

import org.apache.tools.ant.BuildException;

public class MyAntTask extends org.apache.tools.ant.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 中的相关部分如下所示:

<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="dec102012"/>

<target name="main">
    <mytask message="Hello World! MyVeryOwnTask works!"/>
</target>

最佳答案

问题是 Ant 类加载器需要知道 *.class 文件所在的位置。

一旦我将 build.xml 更改为如下所示:

<taskdef name="mytask" classname="dec102012.MyAntTask" classpath="build/classes"/>

  <target name="main">
    <mytask message="Hello World! MyVeryOwnTask works!"/>
  </target>

它起作用了(即打印出 Hello World 消息)。

关于java - 找不到 taskdef ant 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831194/

相关文章:

java - 线程 "main"javax.ws.rs.ProcessingException : javax.net.ssl.SSLProtocolException 中的异常:握手警报:unrecognized_name

java - 如何使用java获取Clob

java.security.UnrecoverableKeyException : Cannot recover key when executing KeyManagerFactory. init()

c# - 为什么我在 Azure Function 中使用 async/Task 时出错,但在 Console App 中使用时却没有错误?

c# - C# Task.WaitAll() 如何将对象状态合二为一?

java - 无法以编程方式隐藏弧形菜单中的 fab 按钮。尝试了 upload.hide();无法弄清楚如何隐藏 fab 按钮

java - 使用 ant 通过 Selenium 测试 fork jUnit 串行运行测试,而不是同时运行测试

android - Cordova build -release Android 未签名 apk

android - ant debug 和 sdk.dir

php - Gearman 的工作和任务有什么区别?