gpt4 book ai didi

java - 如何为特定任务创建 Ant 监听器

转载 作者:行者123 更新时间:2023-12-01 05:54:02 25 4
gpt4 key购买 nike

我们的应用程序中有大约 80 个 jar。全部都是使用ant中的javac任务和jar任务创建的。

我想介绍一下 findbug 检查。一种选择是创建单个 findbug 检查 ant 项目。其中包含所有 jars 和定义的所有源路径。这可行——需要大量空间。结果分析也不是很直接。首先有数千条警告。

我正在考虑的一个选择是在 javac 任务 ant 上运行带有特殊监听器的 ant ,提取源代码和类位置,使用源代码和类文件信息调用 findbug 任务。任何其他方式将 findbug 引入大型项目。

最佳答案

调整了taskFinished()...适合我的使用。

public class JavacListener implements BuildListener 

public void taskFinished(BuildEvent be) {

if ( be.getTask() instanceof UnknownElement ) {
UnknownElement ue= (UnknownElement) be.getTask();
ue.maybeConfigure();

if ( ue.getTask() instanceof Javac ) {
Javac task = (Javac)ue.getTask();
final Path sourcepath = task.getSrcdir();
FindBugsTask fbtask = new FindBugsTask();
System.out.println ("Trying FindBugs");
fbtask.setSourcePath(sourcepath);
fbtask.setAuxClasspath(task.getClasspath());
Path destPath = new Path( task.getProject() );
destPath.setPath(task.getDestdir().getAbsolutePath());
fbtask.setAuxAnalyzepath(destPath);
fbtask.setOutputFile(getFileName(task.getProject()));
fbtask.setProject(task.getProject());

fbtask.setHome(new File("C:\\apps\\findbugs-1.3.0"));
fbtask.execute();
}

} else {
System.out.println(be.getTask().getClass().getName());
System.out.println(be.getTask().getTaskName());
}
}
..

关于java - 如何为特定任务创建 Ant 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com