我正在处理这个项目,开发人员正在尝试编写易于理解的代码,因此在很多地方使用注释是没有意义的。我们有一个 SonarQube,它在其他项目中使用,我们无法配置它。我们所能做的就是在我们项目的 POM 文件中配置 Sonar。SonarQube 抱怨说,我们的代码中没有带有规则"common-java:InsufficientCommentDensity" 的注释。我知道,我们可以使用 sonar.issue.ignore.multicriteria 属性忽略一些规则,例如
<sonar.issue.ignore.multicriteria>junit.assertions.include.messages</sonar.issue.ignore.multicriteria>
<sonar.issue.ignore.multicriteria.junit.assertions.include.messages.ruleKey>squid:S2698</sonar.issue.ignore.multicriteria.junit.assertions.include.messages.ruleKey>
<sonar.issue.ignore.multicriteria.junit.assertions.include.messages.resourceKey>**/*.java</sonar.issue.ignore.multicriteria.junit.assertions.include.messages.resourceKey>
Run Code Online (Sandbox Code Playgroud)
但它不适用于“common-java:InsufficientCommentDensity”规则。为什么?在我们的案例中,有没有办法忽略这条规则?
SonarQube 版本为 6.7(内部版本 33306)
Sonar Maven 插件版本为 3.4.0.905
我的Spring Boot应用程序中有2个REST控制器,具有简单的CRUD操作.
REST控制器,映射到"/ json/currency"
package ua.alekstar.moneysaver.rest;
import org.springframework.web.bind.annotation.*;
import ua.alekstar.moneysaver.rest.currency.Currencies;
import ua.alekstar.moneysaver.rest.currency.Currency;
import ua.alekstar.moneysaver.service.CurrencyService;
import java.util.Collections;
@RestController("/json/currency")
public class CurrencyJsonRestController {
private final CurrencyService currencyService;
public CurrencyJsonRestController(CurrencyService currencyService) {
this.currencyService = currencyService;
}
@GetMapping
@ResponseBody
public Currencies get(@RequestParam(required = false) Long id) {
if (id == null) {
return readAll();
}
return read(id);
}
private Currencies read(Long id) {
return new Currencies(Collections.singletonList(currencyService.read(id)));
}
private Currencies readAll() {
return new Currencies(currencyService.readAll());
}
@PostMapping
public void post(@RequestBody Currency currency) {
currencyService.create(currency.toEntity());
} …Run Code Online (Sandbox Code Playgroud)