使用Checkstyle / PMD / Findbugs检查变量值

我有一个多模块Maven项目,当前正在运行Checkstyle,PMD和Findbugs。在某些类中,我有带有注释的方法。这些注释具有一个参数,该参数的值需要遵循某个正则表达式。有没有一种简单的方法来查找此参数值并使用前面提到的任何工具来验证它是否遵循该模式。我尝试为Checkstyle编写自定义检查。但是,由于Checkstyle仅逐行显示,因此无法验证使用最终字符串设置的参数。我环顾四周,但找不到任何东西。非常感谢你。


慕哥6287543
浏览 199回答 1
1回答

郎朗坤

就在这里。对于PMD的XPath规则来说,这似乎是一个很好的例子。您可以在AST上编写XPath表达式,以匹配不符合您的定义的注释。另外,设计器对于帮助您开发和测试规则非常有用。因此,您可能可以编写如下内容://Annotation[pmd-java:typeIs('java.lang.SuppressWarnings') and .//MemberValue//Literal[not(matches(@Image, '[0-9]+'))]]将匹配所有@SuppressWarnings具有不匹配值的注释[0-9]+。如果需要,您可以进一步优化它以查找特定键的值。一旦可以使用XPath,您只需将其写入规则集,即可开始在您的代码库上运行它。请注意,示例中给出的XPath是XPath 2.0,因为它使用了matches旧版本中不提供的功能。PMD支持XPath 1.0、1.0兼容模式和2.0,默认为1.0,但在规则定义中可以覆盖
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java