как создать слушателя муравья для конкретной задачи - PullRequest
1 голос
/ 07 сентября 2010

В наших приложениях около 80 банок. Все они созданы с помощью задачи javac и jar task в ant.

Я хотел бы ввести проверки findbug. Одним из вариантов было создание единого проекта проверки муравьев findbug. Здесь есть все jar-файлы, все пути к источникам, определенные в нем. Это работает - требует много места. Анализ результата тоже не очень прямой. Есть тысячи предупреждений для начала.

Один вариант, который я рассматриваю, - это запустить ant со специальным слушателем для задачи javac ant, извлечь источник и местоположение класса, вызвать задачу findbug с информацией об источнике и файле класса. Любой другой способ представить findbug для большого проекта.

1 Ответ

0 голосов
/ 13 сентября 2010

улучшенный 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());
            }
        }
..
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...