自动检查Java文件以编码标准符合性

我正在从事Java开发。 我最近遇到了一种情况,我必须遵守编码标准:成员和方法排序,命名约定,修饰符序列。 我正在考虑自动检查合规性的方法,或者生成某种进行重新排序的机制。

我们正在使用Eclipse开发,但该技术将是开放的。 它可能的一种工作方式是生成外部构建器工具并将其添加到项目中。 缺点是它会自动应用于所有文件,这可能会遇到遗留代码的问题,将错误计数扩大到不再是合理的合理度量标准的程度。 此外,它使代码审查变得更加困难,这是不希望的。

另一种方式是某种只具有信息function的解析器。 我们可以在Jenkins中运行一个进程,这肯定会起作用,但这也意味着代码已经通过了审核,对于代码合规性检查通常有点迟。

是否有建议甚至简单的方法将这些function集成到IDE,源控制系统(Mercurial)甚至Jenkins中? 这在其他地方如何执行?

我不建议自动进行此类更改。 尽管大多数checkstyle / pmd符合都是有效的,但在我看来我需要忽略一些警告/错误。 而且 – 这些容易出现的问题非常少。 大多数通知需要更复杂的操作,如果没有人工干预,可能无法完成。

我正在使用Sonar集成。 它包含许多外部检查器,如PMD ,CPD, Checkstyle , Findbugs,并且可以与其他一些有用的工具集成,如Cobertura (测试覆盖率统计)。 将Sonar构建与Jenkins构建绑定并试图避免重大/关键问题几乎是微不足道的,这可能被认为是一种很好的方法。

在开发人员环境中,我使用Eclipse与findbugs集成。 还有一些与声纳集成的点,但它需要将代码提交到服务器或在本地运行服务器,这是我个人不喜欢的。 但是,在Sonar中进行代码审查后对代码进行几次抛光后,您会注意到您(和其他团队成员)坚持大多数规则并且每天检查报告就足够了。

一种解决方案是使用JCSC / checkstyle或其他命令行友好的工具。 将其与构建过程集成。 个人开发人员在他的分支上运行它。

大多数工具与Jenkins(通过插件)很好地集成,可以用作仪表板

继@ Jayan的回答,Jenkins有一个CheckStyle插件 ,它将显示每个CheckStyle运行的结果,并允许您根据找到的违规次数设置构建状态。 所以你的设置步骤是:

  1. 设置CheckStyle规则以符合您的编码标准
  2. 在运行CheckStyle的Jenkins构建中添加一个步骤
  3. 添加post构建步骤以发布CheckStyle结果。

Jayan提到了checkstyle,这对于检查编码标准非常有用。

我记得多年前使用Jalopy进行自动代码格式化,它也可能适合您的需求。

老实说,我不会自动重新格式化代码。 使用checkstyle等工具来提出警告是一回事。 控制开发人员的源代码是另一回事,并且大多数人发现它非常具有侵入性和不愉快性。 此外,代码检查器中的错误最不会产生不正确的警告。 代码美化中的错误可能会破坏并破坏数小时的工作。

您可以使用JArchitect来检查使用CQLinq查询的最佳实践,这对于轻松创建自定义规则很有用

JArchitect对于开源贡献者是免费的: http : //www.jarchitect.com/JArchitectForOSS.aspx