Недокументированное правило сонара API не работает в sonarqube 6.5?

Правило «Открытые типы, методы и поля (API) должны быть задокументированы с помощью Javadoc», похоже, не работает в SonarQube 6.5.

Я активировал правило в профиле качества Java, установил профиль по умолчанию и запустил свою кодовую базу Java с помощью команды mvn sonar:sonar.

Никаких нарушений этого правила он не обнаружил, хотя в некоторых методах отсутствует Javadoc. Другие правила отлично работают при обнаружении нарушений.

Мой тестовый класс выглядит примерно так:

package counter;

/**
 * This is a Javadoc comment
 */
public class MyClass {    

 public static final int DEFAULT_STATUS = 0;    // Compliant - static constant
 private int status;                           // Compliant - not public

 public String message;                  // Noncompliant

 public MyClass() {                         // Noncompliant - missing documentation
   this.status = DEFAULT_STATUS;
 }

 public void setStatus(int status) {  // Compliant - setter
   this.status = status;
 }

 protected int doSomething() {
     return status + 24;// Compliant - not public
 }

 public int doSomething2(int value) {  // Noncompliant
     int a = value*8;
     return a*1;
 }

 public int doSomething3(int value) {  // Noncompliant
   return value*9;
 }
}

person Arihant    schedule 17.07.2019    source источник


Ответы (2)


Похоже, это была проблема в SonarQube 6.5. Что вы можете сделать, так это перейти на SonarQube 6.7.7, обновить все плагины, проверить активацию правила в используемом профиле и повторить попытку. Имейте в виду, что последней версией LTS является 7.9, поэтому вам следует подготовиться к обновлению с 6.7.x до 7.9, следующей основной версии. Также обновите плагины еще раз.

person Jeroen Heier    schedule 17.07.2019

Наконец-то понял. В настройках по умолчанию правило UndocumentedAPI работает только для пакетов api (пакетов, которые содержат api в своих именах).

Во время активации правила в меню запроса запрашивается шаблон классов, которые должны запускать это правило. Как изображено на изображении:

введите здесь описание изображения

Теперь мы можем легко изменить этот параметр, как захотим.

person Arihant    schedule 21.07.2019