Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为特定任务创建ant侦听器_Java_Ant_Junit - Fatal编程技术网

Java 如何为特定任务创建ant侦听器

Java 如何为特定任务创建ant侦听器,java,ant,junit,Java,Ant,Junit,我们的应用程序中大约有80个罐子。所有这些都是在ant中使用javac任务和jar任务创建的 我想介绍findbug检查。一个选项是创建单个findbug check ant项目。它有所有JAR,其中定义了所有源路径。这项工作需要很大的空间。对结果的分析也不是很直截了当。首先有成千上万的警告 我正在考虑的一个选项是在javac任务ant上运行带有特殊侦听器的ant,提取源代码和类位置,使用源代码和类文件信息调用findbug任务。任何其他方式都可以将findbug引入到大型项目中 调整了task

我们的应用程序中大约有80个罐子。所有这些都是在ant中使用javac任务和jar任务创建的

我想介绍findbug检查。一个选项是创建单个findbug check ant项目。它有所有JAR,其中定义了所有源路径。这项工作需要很大的空间。对结果的分析也不是很直截了当。首先有成千上万的警告

我正在考虑的一个选项是在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());
            }
        }
..

我们在项目中的所有代码上运行findbugs taskdef classname=“edu.umd.cs.findbugs.anttask.FindBugsTask”。如果您只想首先看到主要的bug,可以将reportLevel设置为high。这样行吗?我必须编辑80多个build.xml文件来介绍findbug。我所做的是为javac创建一个监听器,并使用其中的值来创建findbug任务并运行工具。很好。