我正在从事Java开发工作。我最近遇到了必须遵守编码标准的情况:成员和方法排序,命名约定,修饰符序列。我正在考虑自动检查合规性的方法,或者生成某种重新排序的机制。
我们正在使用Eclipse开发,但该技术将是开放的。它可能的一种工作方式是生成外部构建器工具并将其添加到项目中。缺点是它会自动应用于所有文件,这可能会遇到遗留代码的问题,将错误计数推高到不再是合理的合理度量标准的程度。此外,它使代码审查变得更加困难,这是不希望的。
另一种方式是某种具有信息功能的解析器。我们可以在Jenkins中运行一个进程,这肯定会起作用,但这也意味着代码已经通过了审核,这对于代码合规性检查来说通常有点晚。
是否有建议甚至简单的方法将这些功能集成到IDE,源控制系统(Mercurial)甚至Jenkins中?这是如何在其他地方强制执行的?
答案 0 :(得分:3)
我不建议自动进行此类更改。尽管大多数checkstyle / pmd符合都是有效的,但在我看来我需要忽略一些警告/错误。而且 - 这些容易出现的问题非常少。大多数通知需要更复杂的操作,如果没有人工干预,可能无法完成。
我正在使用Sonar集成。它包含许多外部检查程序,例如PMD,CPD,Checkstyle,Findbugs,并且可以与其他一些有用的工具集成,例如Cobertura(测试覆盖率统计信息)。将Sonar构建与Jenkins构建绑定并试图避免重大/关键问题几乎是微不足道的,这可能被认为是一种很好的方法。
在开发人员环境中,我使用Eclipse与findbugs集成。还有一些与声纳集成的点,但它需要将代码提交到服务器或在本地运行服务器,这是我个人不喜欢的。但是,在Sonar中进行代码审查后对代码进行了几次抛光后,您会发现您(和其他团队成员)坚持大多数规则并且每天检查报告就足够了。
答案 1 :(得分:1)
一种解决方案是使用JCSC / checkstyle或其他命令行友好的工具。将其与构建过程集成。个人开发人员在他的分支上运行它。
大多数工具与Jenkins(通过插件)很好地集成,可以用作仪表板
答案 2 :(得分:1)
继@ Jayan的回答,Jenkins有一个CheckStyle plugin,它将显示每个CheckStyle运行的结果,并允许您根据找到的违规次数设置构建状态。所以你的设置步骤是:
答案 3 :(得分:0)
Jayan提到了checkstyle,这非常适合检查编码标准。
我记得使用Jalopy年前的自动代码格式化,它也可能适合您的需求。
但是,老实说,我不会自动重新格式化代码。使用checkstyle等工具来提出警告是一回事。控制开发人员的源代码是另一回事,并且大多数人发现它非常具有侵入性和不愉快性。 此外,代码检查器中的错误最坏的情况会产生错误的警告。代码美化中的错误可能会破坏并破坏数小时的工作。答案 4 :(得分:0)
您可以使用JArchitect使用有用的CQLinq查询来检查您的最佳做法 轻松创建自定义规则
JArchitect对开源贡献者免费:http://www.jarchitect.com/JArchitectForOSS.aspx