Java 如何在没有命令行选项的情况下向ant添加BuildListener?

Java 如何在没有命令行选项的情况下向ant添加BuildListener?,java,netbeans,ant,Java,Netbeans,Ant,我编写了一个ant org.apache.tools.ant.BuildListener,如果构建失败,它会做一些事情。我可以在命令行中将它与ant-listener org.smottguyz.antlisteners.SimpleListener build_all一起使用。但是当我使用NetBeans IDE时,没有明显的方法来指定-listener选项 有没有一种方法可以在某处指定一个具有ant(或NetBeans)属性、设置或配置的额外构建侦听器 编辑。事实证明,这是非常特定于NetB

我编写了一个ant org.apache.tools.ant.BuildListener,如果构建失败,它会做一些事情。我可以在命令行中将它与
ant-listener org.smottguyz.antlisteners.SimpleListener build_all
一起使用。但是当我使用NetBeans IDE时,没有明显的方法来指定
-listener
选项

有没有一种方法可以在某处指定一个具有ant(或NetBeans)属性、设置或配置的额外构建侦听器

编辑。事实证明,这是非常特定于NetBeans的,因为不管出于什么原因,NetBeans禁用了大多数ant配置的大多数方法。这是相关的,但不是答案:(


谢谢!

简短的回答是,对于NetBeans 8.0,您不能使用任何正常的技术。NetBeans ant不使用平台环境变量,因此ant_OPTS不起作用,尽管它应该起作用。此外,nb_ant忽略了~/.ant/antlib,甚至在foo/NetBeans 8.0.2/extide/ant/lib中添加JAR也不起作用。我将此作为一个bug进行归档,但我不同意恐怕这是徒劳的

无论如何,您可以编辑一个构建文件,并添加一个安装自定义侦听器的自定义任务。但您还必须在正确的NB对话框中将task+侦听器的jar添加到NBs ant类路径。因此,我创建了一个小类:

public class Installer extends Task {

    @Override
    public void execute() throws BuildException {
       getProject().addBuildListener(new SimpleListener());
    }

}
在我的build.xml中

<taskdef name="installListener" classname="org.smottguyz.antlisteners.Installer"/>
<installListener/>

在“Options/Java/Ant/Classpath:”对话框中添加jar


实际上很烦人。无论如何,在Josef Betancourt的博客文章中使用scriptdef-like在这种情况下不会有任何效果。

查看答案=>了解类似的问题。.在IDE中,我使用Eclipse-search搜索类似“Run as ant”和add-listener…的内容作为参数。.对于Netbeans,它可能是这样的=>可能的重复