要先在服务端更新插件,才能在本地使用!!!Sonar是服务端通过plugin进行数据解析和转义的,所以sonar形成了类似于拉docker的C-S扫描模式,必须服务端先行。
通常是按照$SONAR_URL/documentation/analysis/scan/sonarscanner-for-gradle/ 来配置。
- tasks.whenTaskAdded {task ->
if(task.name.contains("AndroidTest") || task.name.contains("androidTest")) {
task.enabled = false
}
}
api/projects/search?q= 和 api/measures/component。后者要传metricKeys,可以在sonarqube的结果页抓包确定每个metric的key。不要用idean的那个plugin,跟sonarqube server 9.x有冲突,起不来服务。用https://github.com/sonar-next/sonar-swift。后者的核心数据是lizard、infer,和前者不太一样。
用https://github.com/insideapp-oss/sonar-flutter,问题不大。而且支持整合多个子project。如果根目录不是app,则需要同时指定
sonar.sources=aaa
sonar.projectBaseDir=bbb
以下为论文结论摘要。
无效 java code smell列表
| code smell | 无效的理由 |
|---|---|
| 所有tag包含spring的 | 非客户端环境 |
| “Bean Validation” (JSR 380) should be properly configured | 非客户端环境 |
| “Class.forName()” should not load JDBC 4.0+ drivers | 非客户端环境 |
| “private” methods called only by inner classes should be moved to those classes | 更应该考虑合理归属 |
| An open curly brace should be located at the beginning of a line | 不符合客户端code convension |
| Default annotation parameter values should not be passed as arguments | 不传default增加了理解复杂度,不利于代码重构 |
太多了,待补充
太多了,待补充