我写了一个ant org.apache.tools.ant.BuildListener,如果构建失败,它会做一些事情。我可以在ant -listener org.smottguyz.antlisteners.SimpleListener build_all
的命令行中使用它。但是当我使用NetBeans集成开发环境时,没有明显的方法来指定-listener
选项。
有没有办法在某个地方使用ant (或NetBeans)属性、设置或配置来指定一个额外的构建侦听器?
编辑。事实证明,这是特定于NetBeans的,因为无论出于什么原因,NetBeans都会禁用适用于大多数ant配置的大多数方法。所以Is it possible to specify logger for ant inside build.xml?是相关的,但不是答案:(
谢谢!
发布于 2015-09-24 01:07:48
简短的答案是,在NetBeans 8.0中,您不能使用任何常规技术。NetBeans ant不使用平台环境变量,因此ANT_OPTS不能工作,尽管它应该工作。此外,nb_ant会忽略~/.ant/antlib,甚至向foo/NetBeans 8.0.2/extide/ant/lib添加jars也不起作用。我将此作为bug提交,但我预计它将是徒劳的。
无论如何,您可以编辑一个构建文件,并添加一个安装自定义侦听器的自定义任务。但是您还必须在正确的NB对话框中将task+listener的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
实际上挺烦人的。无论如何,使用scriptdef就像Josef Betancourt的博客文章一样,在这种情况下不会有任何好处。
https://stackoverflow.com/questions/32725970
复制相似问题