【发布时间】:2014-09-22 18:52:41
【问题描述】:
最近我在 sonarqube 4.4 上写了一些 XPath Query。其中一些适用于声纳 4.4,而另一些则不适用。例如,当我将 XPath 查询定义如下:
//IfStatement/statement[not(block)]//WhileStatement/statement[not(block)]//variableDeclarator[not(block)]
声纳 4.4 检测到问题,当我将 XPath 查询定义如下:
//qualifiedIdentifier/IDENTIFIER[@tokenValue= "println"]
声纳未检测到问题。为什么会这样?
正如 Fabrice 在 here 中解释的那样,这是 sonarqube 4.4 中的一个已知错误,但为什么某些 XPath 查询(例如 If/Statement)适用于 sonar 4.4 而另一些则不行?
【问题讨论】:
-
通过下载SSLR Java toolkit,您将能够获得任何java源文件的AST结构,甚至可以测试您的Xpath表达式。
-
是的。我下载了 SSLR java 工具包,XPath 查询适用于 SSLR java 工具包,但在声纳中它没有保存也没有检测到问题。