【问题标题】:How to add BuildListener to ant without command line option?如何在没有命令行选项的情况下将 BuildListener 添加到 ant?
【发布时间】:2015-09-25 03:56:05
【问题描述】:

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

有没有办法在某处使用 ant(或 NetBeans)属性、设置或配置指定额外的构建侦听器?

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

谢谢!

【问题讨论】:

标签: java netbeans ant


【解决方案1】:

简短的回答是,对于 NetBeans 8.0,您不能使用任何常规技术。 NetBeans ant 不使用平台环境变量,因此 ANT_OPTS 不起作用,尽管它应该起作用。此外,nb_ant 会忽略 ~/.ant/antlib,甚至将 jars 添加到 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 并没有什么好处。

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2021-05-05
    • 1970-01-01
    • 2021-10-24
    • 2021-01-27
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多