【问题标题】:Undocumented API sonar rule is not working in sonarqube 6.5?未记录的 API 声纳规则在 sonarqube 6.5 中不起作用?
【发布时间】:2019-11-26 04:19:06
【问题描述】:

“公共类型、方法和字段 (API) 应使用 Javadoc 记录”规则似乎在 SonarQube 6.5 中不起作用。

我在 Java 质量配置文件中激活了规则,将配置文件设置为默认配置,并通过 mvn sonar:sonar 命令运行我的 Java 代码库。

它没有发现任何违反此规则的行为,即使某些方法缺少 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;
 }
}

【问题讨论】:

    标签: java sonarqube sonarlint


    【解决方案1】:

    这似乎是 SonarQube 6.5 中的 issue。您可以做的是升级到 SonarQube 6.7.7,更新所有插件,检查所用配置文件中规则的激活,然后重试。请注意,最新的 LTS 版本是 7.9,因此您应该准备从 6.7.x 升级到下一个主要版本 7.9。还要再次更新插件。

    【讨论】:

      【解决方案2】:

      终于明白了。 在默认设置下,UndocumentedAPI 规则仅适用于 api 包(名称中包含 api 的包)。

      在规则激活期间,提示菜单会询问应运行此规则的类模式。如图所示:

      现在我们可以根据需要轻松更改此设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        • 2019-11-20
        • 1970-01-01
        • 1970-01-01
        • 2014-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多