繁体   English   中英

在SonarQube分析期间分析另一个文件(自定义规则)

[英]Analyze another file during SonarQube analysis (custom rule)

所以,我目前正在开发一个带有一些自定义规则的SonarQube Java插件。

其中一个需要分析Java文件以获取特定的注释,如果缺少它,它应该报告一个问题,除非注释在其超类上。

问题是我无法在当前分析(在类上)分析另一个文件(超类)。

有没有办法做到这一点?

Obs:我正在使用SonarQube Server 5.6.3和Sonar Java Plugin 4.9。

您可以使用语义模型来获取有关项目中定义的符号(类,方法,...)的信息。 分析类时,您可以访问ClassTree ,因此您可以测试其超类是否存在这样的注释

ClassTree classTree = (ClassTree) tree;
Symbol.TypeSymbol classSymbol = classTree.symbol();
Type superClass = classSymbol.superClass();
SymbolMetadata superClassMetadata = superClass.symbol().metadata();
if (superClassMetadata.isAnnotatedWith("org.acme.MyAnnotation")) {
  //...
}

请参阅此检查实现 ,该实现使用API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM