Вот что я делаю в моем текущем проекте, он помещает findbugs-exclude.xml
в родительский проект (который, я знаю, вы не хотите), но это устраняет проблему СУХОГО поддержания его в двух местах.Это проще, чем распаковка, но требует, чтобы вся структура проекта была локальной.(Я думаю, что решение по распаковке было бы полезно использовать во многих проектах одну и ту же конфигурацию, как в корпоративной среде.)
Я храню свою конфигурацию findbugs в parent/src/main/resources/shared/findbugs-exclude.xml
, но пока она находится в родительскойконкретный каталог не имеет значения.
Затем я использую свойства, чтобы описать расположение «общего» каталога:
<properties>
<myproject.parent.basedir>${project.parent.basedir}</myproject.parent.basedir>
<myproject.parent.shared.resources>${myproject.parent.basedir}/src/main/resources/shared</myproject.parent.shared.resources>
</properties>
И ссылаюсь на эти свойства при настройке findbugs в родительском:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<configuration>
<excludeFilterFile>${myproject.parent.shared.resources}/findbugs-exclude.xml</excludeFilterFile>
</configuration>
...
</plugin>
Все прямые дочерние проекты теперь будут запускать findbugs, ссылаясь на файл конфигурации в parent.Если у вас есть несколько уровней вложенности проекта, вам придется переопределить myproject.parent.basedir
в дочернем элементе.Например, если у вас есть parent <- sub-parent <- child, вы должны поставить: </p>
<properties>
<myproject.parent.basedir>${project.parent.parent.basedir}</myproject.parent.basedir>
</properties>