我正在为SonarQube Javascript插件编写自定义规则插件。
现在,我想根据规则禁用在特定目录中的检查。 (例如,不应在bin路径中检查它)
现在我的问题是:如何获得相对于项目路径检查的文件的路径。或另一个解决方案是:如何获取项目路径?
我的代码是:
@Override
public void visitNode(Tree tree) {
CallExpressionTree callExpression = (CallExpressionTree) tree;
if (callExpression.callee().is(Kind.DOT_MEMBER_EXPRESSION)) {
DotMemberExpressionTree callee = (DotMemberExpressionTree) callExpression.callee();
// get the file that is checked
File toTestedFile = getContext().getFile();
//how to get the project path here to get the relative path???
if (isCalleeConsoleLogging(callee)) {
addLineIssue(tree, MESSAGE);
}
}
}
最佳答案
这就是平台排除机制的作用。如果我是您,则不会尝试将此类排除项放入规则实现中。相反,只需编写一个通用/通用规则实现并在全局级别设置Issue exclusions即可忽略要忽略的目录。