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



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

是否有一种方法可以指定一个额外的构建监听器与ant(或NetBeans)属性,设置或配置的地方?

编辑。事实证明,这是NetBeans特有的,因为无论出于何种原因,NetBeans禁用了大多数适用于大多数ant配置的方法。那么有可能在build.xml中为ant指定记录器吗?是相关的,但不是答案:(

谢谢!

简短的回答是,对于NetBeans 8.0,您不能使用任何常规技术。NetBeans ant不使用平台环境变量,因此ANT_OPTS不能工作,尽管它应该工作。此外,nb_ant忽略了~/。甚至在foo/NetBeans 8.0.2/extide/ant/lib中添加jar也不起作用。我把它归档为一个bug,但我希望它不会有结果。

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

相关内容

  • 没有找到相关文章