Включение цели spotbugs в build xml (ant)

#java #ant #build.xml #spotbugs

#java #ant #build.xml #spotbugs

Вопрос:

извините, я снова борюсь. Итак, taskdef работает нормально, но я не могу работать с spotbugs.

 <target name="bugs" depends="compile">

    <spotbugs home="${spotbugs.home}"
        output="${spotbugs.output}"
        outputFile="bugs.${spotbugs.output}"
        excludeFilter="${spotbugs.exclude}">
    <sourcePath path="."/>
    <auxClassPath path="."/>
    <fileset dir="." includes="${package}/*.class"/>
</spotbugs>
  

Итак, я хочу проверить код с помощью

ant -Dpackage=ошибки einstieg

и получите «Проблема: не удалось создать задачу или ввести spotbugs». Тот же шаблон, который я использую для checkstyle, работает отлично. Определение задачи указывает на spotbugs и необходимый класс — без каких-либо ошибок. Есть предложения?

Поэтому я думаю, что точка для spotbugs просто не существует. Но в каталоге / lib существует подходящий файл.

Вот как выглядит определение задачи:

 <!-- spotbugs settings -->
    <property name="spotbugs.home" value="C:/ant/lib"/>
    <property name="spotbugs.output" value="xml"/>
    <property name="spotbugs.exclude"
              value="C:/Users/wolfbiker/Documents/einstieg/exclude_filter.xml"/>
    <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties"
             classpath="${spotbugs.home}/spotbugs-ant.jar"/>
  

Комментарии:

1. Большинство разработчиков в настоящее время используют maven или gradle, вы привязаны к ant?

2. Вы прочитали и выполнили: spotbugs.readthedocs.io/en/stable/ant.html

3. эй, да, итак, мой профессор хочет, чтобы мы использовали все задачи ant. уже прочитал руководство, но, возможно, еще несколько раз, чтобы все понять.. Спасибо

Ответ №1:

Я думаю, что при детальном чтении с использованием задачи SpotBugs Ant вы увидите, что ваш

 <property name="spotbugs.home" value="C:/ant/lib"/>
  

не следует указывать на ant home, куда вы скопировалиspotbugs-ant.jar вместо этого он должен указывать на саму установку spotbugs, что не совпадает с ant-задачей spotbugs.
Таким образом, spotbugs также должен быть установлен рядом с ant-task.

Это также означает, что вам нужно изменить свой путь к классу

 <taskdef resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpath="${spotbugs.home}/spotbugs-ant.jar"/>
  

чтобы указать на spotbugs-ant.jar что вы должны были быть скопированы в ваш каталог ant / lib.

Комментарии:

1. Привет, большое вам спасибо за вашу помощь. На самом деле я не устанавливал файлы SpotBugs в отдельный каталог. Я исправил это, а также отредактировал build.xml файл. Возможно, все еще есть некоторые ошибки, потому что я все еще получаю то же сообщение об ошибке. Подумайте об этом, может быть, снова какая-то очевидная ошибка: X