验证一组Java源文件上的预定义Java规则

时间:2015-11-24 16:24:39

标签: java coding-style

我正在寻找一个工具来验证一组java源文件(不是字节码)遵循一组预定义规则。

例如,如果我们有一个预定义规则,表明任何方法都包含断言,则方法名称必须具有后缀" xxxTest " 。为了保持代码清洁,所有开发人员都必须遵循这些规则/约定。当然,代码审查可以解决这个问题,但应该有一种方法来自动化这些简单的代码样式检查。

此外,开发人员应该能够在提交之前在其更改集上本地运行此工具。

为了解决这个问题,我开始使用javaparser编写自己的验证程序,它将使用gradle任务执行。然而,为了避免重新发明轮子,我想知道是否有现成的工具允许我这样做甚至关闭(可能我可以做出贡献)!

更新

我知道CheckStyle和Sonar的静态分析。但是我需要在CI(ex,Jenkins)上运行此工具作为构建的一部分。因此,如果不应用约定,构建应该失败。

3 个答案:

答案 0 :(得分:1)

您可以测试JArchitect及其强大的查询语言CQLinq。 根据您的特定需要,您可以执行以下查询

enter image description here

答案 1 :(得分:1)

您可以轻松构建此工具JavaParserjava-symbol-solver。第一个生成源代码的AST,第二个生成符号(例如查找给定类的所有祖先)。

如果您的规则足够简单,那么您可能只是使用JavaParser。这样会很好,因为JavaParser的依赖性非常少,而且非常成熟和已经建立。

答案 2 :(得分:0)

使用Checkstyle等工具。

它允许您为styleguide配置规则集,或者您可以编写扩展程序。 还有广泛的支持将它集成到IDE和构建过程中。