在构建中强制执行项目的所有文件中的编码标准

Per*_*ega 5 java xml sql struts2 maven

我知道在Stackoverflow中有一些类似的问题,但它们要么是.Net相关的,要么没有任何帮助我们的答案.

案例如下:我和一些朋友正在开展一个开源项目.在为有希望成功的项目奠定基础的同时,出现了一个问题:如何执行项目的代码约定?

原因在于,作为一个开源项目,如果人们开始按照自己的意愿重新格式化代码,补丁将因为格式化而变得混乱,因为格式化将隐藏补丁的真正"价值".所以我们想要一些强迫用户遵守特定格式的东西,如果他们不这样做就会破坏构建.

该项目使用Struts 2 + Spring + Hibernate,使用Maven 2(考虑转移到Maven 3).我们知道我们可以使用"CheckStyle"来测试Java文件,但这会留下一些问题,希望有人可以回答:

  • 有一些工具可以检查XML和SQL文件的样式,如果他们不遵守规则就会破坏构建?
  • 有一些工具可以自动将源文件(Java,XML,SQL)重新格式化为所需的约定?可以以某种方式与Maven集成吗?

我们可以找到Jalopy for Java文件,但我们更喜欢免费工具(据我们所知,最新版本是付费的).我们仍然找不到任何SQL/XML.

更新:只是说清楚:我不是在询问PMD,Checkstyle或这些工具.我要求的工具是:

  • 自动将SQL,XML和/或Java文件格式化为所需的编码约定(4个空格等)
  • 检测具有错误格式的SQL和XML文件并因此破坏构建.

Mic*_*rry 3

在我看来,您正在沿着创建开源项目然后向所有人授予提交访问权限的路线。我建议不要这样做,无论你尝试采取什么措施,总会有某个愚蠢的人出现并把整个事情搞砸。

相反,我建议对提交访问采取不同的方法,并仅将其分发给那些证明他们关注您制定的规则和限制的人。他们可以生成补丁,将其提交给您,最终,如果它们足够定期且值得信赖,您就可以授予提交访问权限。

另一点,像 Hudson 这样的东西可能在这里有用(它也有一个 checkstyle 插件)。它不会阻止人们提交垃圾代码,但它可以创建一个构建并经常运行 checkstyle,在邮件上通知人们列出是否有人搞砸了代码(要么因为它无法构建,要么因为有人破坏了检查样式规则)。这并不万无一失,但这将使您能够更轻松地关注事物。