【问题标题】:java.lang.ClassNotFoundException: org.sonar.java.model.JavaTree "dependency issue creating a sonar plugin"java.lang.ClassNotFoundException: org.sonar.java.model.JavaTree “创建声纳插件的依赖问题”
【发布时间】:2014-09-07 18:20:02
【问题描述】:

我正在创建一个插件来添加一些自定义规则。首先,我的工作基于:/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 版吗?

【问题讨论】:

  • 请在另一个问题中详细说明您要达到的目标。我可能会提供帮助。

标签: java plugins sonarqube sonar-runner


【解决方案1】:

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

此类仅供内部使用。

【讨论】:

  • 感谢您的快速响应。我感谢您的支持。我知道我的规则不能使用 JavaTree 或 SemanticModel 类,因为它们不是 org.sonar.plugins.java.api 的一部分。你知道为什么这些类不能用于创建自定义规则吗?
  • 只是因为很难更改已发布的 API,而且这仍然不完整且正在进行中,因此我们不希望以后无法更改。
猜你喜欢
  • 2016-08-11
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 2020-01-10
  • 2023-04-04
相关资源
最近更新 更多