Как мога да огранича правилото на Sonar JavadocMethod до имена на файлове, включително Controller?

Имам вече съществуващ Java проект, към който наскоро беше приложен Sonar Analysis. Има голям брой нарушения на правилата на CheckStyle JavadocMethod.

Как бих могъл да огранича правилото на JavadocMethod, за да се прилага само за имена на файлове на Java с модела „Контролер.java“?


person Mark    schedule 12.07.2013    source източник


Отговори (1)


Проверката на JavadocMethod не предлага опция за ограничаване до определени файлове, така че това не може да се направи лесно. Но - можете да:

  • Напишете персонализиран филтър, който потиска всички JavadocMethod предупреждения, които се появяват във файлове, които не съвпадат с шаблон. Това не е трудно - примерът на свързаната страница обхваща точно този случай. Но това изисква да разположите филтъра и това може да е малко неприятно.
    Не съм сигурен дали това работи в Sonar. Използвам персонализирани проверки на Checkstyle в Sonar през цялото време, но все още не съм пробвал персонализирани филтри.

  • Напишете подклас на JavadocMethodCheck на Checkstyle, който добавя опция за самоприлагане само към определени файлове (Примери за сонари , урок за Checkstyle). Това е сигурен залог, ако персонализирани филтри не могат да бъдат добавени към Sonar.

  • Ако използвате Eclipse, можете да го конфигурирате да използва различни набори от правила въз основа на име на файл. Бихте направили това, като използвате настройката за "разширена" конфигурация в свойствата на проекта. Вашите регулярни изрази ще бъдат Controller\.java$, за да съответстват на всички контролери, и .{10}(?<!Controller)\.java$, за да съответстват на другите Java файлове. Този подход може да се приложи и към самостоятелно или базирано на Ant изпълнение на Checkstyle, но не и към Sonar.

Съжалявам, че няма нищо по-лесно за вас - но така стоят нещата в момента...
Успех!

person barfuin    schedule 17.07.2013
comment
Връзката към вашия урок за Sonar е остаряла, ако можете, моля, актуализирайте я. - person Omar Ayala; 22.04.2016
comment
Просто направих. Старият урок вече не е там, но SonarQube така или иначе работи по различен начин днес. Актуализиран до по-полезна колекция от примери. - person barfuin; 22.04.2016