我正在寻找一个工具来验证一组java源文件(不是字节码)遵循一组预定义规则。
例如,如果我们有一个预定义规则,表明任何方法都包含断言,则方法名称必须具有后缀" xxxTest " 。为了保持代码清洁,所有开发人员都必须遵循这些规则/约定。当然,代码审查可以解决这个问题,但应该有一种方法来自动化这些简单的代码样式检查。
此外,开发人员应该能够在提交之前在其更改集上本地运行此工具。
为了解决这个问题,我开始使用javaparser编写自己的验证程序,它将使用gradle任务执行。然而,为了避免重新发明轮子,我想知道是否有现成的工具允许我这样做甚至关闭(可能我可以做出贡献)!
更新
我知道CheckStyle和Sonar的静态分析。但是我需要在CI(ex,Jenkins)上运行此工具作为构建的一部分。因此,如果不应用约定,构建应该失败。
答案 0 :(得分:1)
您可以测试JArchitect及其强大的查询语言CQLinq。 根据您的特定需要,您可以执行以下查询
答案 1 :(得分:1)
您可以轻松构建此工具JavaParser和java-symbol-solver。第一个生成源代码的AST,第二个生成符号(例如查找给定类的所有祖先)。
如果您的规则足够简单,那么您可能只是使用JavaParser。这样会很好,因为JavaParser的依赖性非常少,而且非常成熟和已经建立。
答案 2 :(得分:0)
使用Checkstyle等工具。
它允许您为styleguide配置规则集,或者您可以编写扩展程序。 还有广泛的支持将它集成到IDE和构建过程中。