我正在创建一个插件来添加一些自定义规则。首先,我的工作基于:/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
,但不幸的是
Sonar 版本 4.3.2 可与版本 2.1 配合使用
JavaTree
类可以通过插件类路径共享访问吗?有特殊配置吗?我的 pom.xml 中缺少什么吗?我必须等到 2.3 版本吗?
最佳答案
JavaTree
不是 org.sonar.plugins.java.api
的一部分,因此无法通过插件类路径共享进行访问以实现您自己的规则。
此类仅供内部使用。
关于java.lang.ClassNotFoundException : org. sonar.java.model.JavaTree "dependency issue creating a sonar plugin",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24794038/