我正在创建一个插件以添加一些自定义规则。首先,我的工作基于:/sonar-examples/plugins/java-custom-rules。该示例工作得很好,我也创建了一些规​​则。

我在尝试基于UnusedPrivateFieldCheck.java version 2.1创建规则时遇到问题。 sonarRunner失败,并显示以下消息:


  java.lang.ClassNotFoundException:org.sonar.java.model.JavaTree


失败的行是:

AstNode identifierAstNode = ((JavaTree) tree).getAstNode().getFirstChild(JavaTokenType.IDENTIFIER);


在规则版本2.3中,未使用JavaTree,但是很遗憾
声纳版本4.3.2与版本2.1兼容

是否可以从插件类路径共享访问JavaTree类?有特殊配置吗?我的pom.xml中缺少什么吗?我必须等到2.3版吗?

最佳答案

JavaTree不是org.sonar.plugins.java.api的一部分,因此无法通过插件类路径共享来访问以实现您自己的规则。

此类仅供内部使用。

08-27 13:58