gpt4 book ai didi

java - 访问自定义 sonarqube 规则中的度量(java 检查)

转载 作者:行者123 更新时间:2023-12-01 09:17:49 26 4
gpt4 key购买 nike

嗨,我正在为 Sonarqube 编写自己的插件,带有自定义规则检查。规则应根据方法或类的某些测量来报告问题。这种方法的关键是访问相关指标的度量。这是我的示例检查类:

@Rule(key = "BrainMethod", name = "Brain method"
public class BrainMethod extends BaseTreeVisitor implements JavaFileScanner {
private JavaFileScannerContext context;
/* (non-Javadoc)
* @see org.sonar.plugins.java.api.JavaFileScanner#scanFile(org.sonar.plugins.java.api.JavaFileScannerContext)
*/
@Override
public void scanFile(JavaFileScannerContext context) {
this.context = context;
//scan the java file tree
scan(context.getTree());
}

/* (non-Javadoc)
* @see org.sonar.plugins.java.api.tree.BaseTreeVisitor#visitMethod(org.sonar.plugins.java.api.tree.MethodTree)
*/
@Override
public void visitMethod(MethodTree tree) {
// here is the place where I want to acces to the measurements
context.reportIssue(this, tree, String.format("Potentional brain method"));
super.visitMethod(tree);
}

有什么方法可以获取此规则中的代码行数、复杂性或其他指标的测量值吗?或者我使用了错误的方法来做到这一点?

最佳答案

不,没有这样的功能,您的自定义规则有责任计算所需的内容。您可以找到一些实用方法,例如 context.getComplexityNodes(methodTree); 但这是一种极端情况。

关于java - 访问自定义 sonarqube 规则中的度量(java 检查),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com