代码之家  ›  专栏  ›  技术社区  ›  Jayan

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

  •  1
  • Jayan  · 技术社区  · 14 年前

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

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Jayan    14 年前

    已调整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());
                }
            }
    ..