SonarQube插件开发自定义规则
SonarQube插件开发自定义规则
祈雨v
这个作者很懒,什么都没留下…
展开
-
SonarQube插件开发自定义规则(1)简易demo
1、maven依赖本开发教程适用于sonarqube5.x、6.x。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http原创 2017-10-03 10:08:03 · 8481 阅读 · 4 评论 -
SonarQube插件开发自定义规则(2)常用api-扫描java文本内容
1、文本式读取被扫描java文件public class TXTestCheck extends BaseTreeVisitor implements JavaFileScanner { public void scanFile(JavaFileScannerContext context) { scan(context.getTree()); visitFi原创 2017-10-03 10:13:16 · 5080 阅读 · 2 评论 -
SonarQube插件开发自定义规则(3)常用api-记录java文件错误行
1、通过节点记录错误行reportIssue(tree, "记录信息");// 同上context.reportIssue(this, tree, "记录信息");2、通过行号记录错误行addIssue(lineNum, "记录信息");3、效果原创 2017-10-03 10:16:19 · 1082 阅读 · 0 评论 -
SonarQube插件开发自定义规则(4)常用api-其他
1、获取成员变量类型@Overridepublic void visitNode(Tree tree) { if (tree instanceof VariableTree) { VariableTree variableTree = (VariableTree) tree; System.out.println(variableTree.symbol().原创 2017-10-03 10:18:10 · 2231 阅读 · 0 评论 -
SonarQube插件开发自定义规则(5)添加可配置参数
1、代码public class TXTooMuchIfCheck extends IssuableSubscriptionVisitor { private static final int DEFAULT_MAXIMUM_LINE = 3; @RuleProperty(key = "maximumLine", description = "if-else i原创 2017-10-03 10:20:22 · 2135 阅读 · 0 评论 -
SonarQube插件开发自定义规则(6)注意事项
1、单例模式所有的规则类都是单例模式,所以规则类中最好不要有成员变量。若无法避免时,则必须在节点扫描前清空成员变量的数据。例如private List<String> methodNameList = new ArrayList<String>();private List<VariableTree> variableTreeList = new ArrayList<VariableTree>()原创 2017-10-03 10:22:10 · 1840 阅读 · 0 评论 -
SonarQube插件开发自定义规则(7)测试插件
1、测试代码JavaCheckVerifier.verify("src/test/files/DoTest.java", new TXAbstractClassNameCheck());2、效果2.1、当打印一下内容时,则说明自定义的规则插件没有对被检测的java文件记录错误行。Exception in thread "main" java.lang.IllegalStateException: A原创 2017-10-03 10:23:59 · 2296 阅读 · 11 评论