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

时间:2015-09-22 20:11:13

标签: java netbeans ant

我编写了一个ant org.apache.tools.ant.BuildListener,它可以在构建失败的情况下执行操作。我可以在ant -listener org.smottguyz.antlisteners.SimpleListener build_all的命令行中使用它。但是当我使用NetBeans IDE时,没有明显的方法来指定-listener选项。

有没有办法在某处指定具有ant(或NetBeans)属性,设置或配置的其他构建侦听器?

EDIT。事实证明这是特定于NetBeans的,因为无论出于何种原因,NetBeans都会禁用大多数适用于大多数ant配置的方法。所以Is it possible to specify logger for ant inside build.xml?是相关的,但不是答案:(

谢谢!

1 个答案:

答案 0 :(得分:0)

简而言之,就是使用NetBeans 8.0,您无法使用任何常规技术。 NetBeans ant不使用平台环境变量,因此ANT_OPTS不起作用。此外,nb_ant忽略〜/ .ant / antlib,甚至将jar添加到foo / NetBeans 8.0.2 / extide / ant / lib也不起作用。我将此视为一个错误,但我预计它将毫无结果。

无论如何,您可以编辑构建文件,并添加安装自定义侦听器的自定义任务。但是您还必须在正确的NB对话框中将任务+监听器的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在这种情况下买不到任何东西。