大型项目代码格式设置的最佳做法 [已关闭]

2022-09-03 09:07:46

我维护一个大型Java EE /Maven/Hudson/Perforce项目的构建,该项目有大约20名开发人员遍布全球。

代码格式化的解决方案是在开发人员运行构建时使用Jalopy格式化代码库,从而确保任何未格式化的代码在签入之前都得到格式化。

这个解决方案的主要问题是,如果开发人员在签入之前没有运行完整的Maven构建(假设他们从Eclipse运行单元测试),他们的代码就不会被格式化。然后,下一个编辑该文件的开发人员在运行格式化程序后,可能会在代码的不相关部分中有许多差异。

在大型项目中,哪种源格式设置策略最适合您?我考虑过的另一个选项是使用自动化过程每晚格式化。


答案 1

Maven版本应该只使用Checkstyle之类的东西报告格式错误,而不是自动格式化代码。这就是你的描述似乎暗示的。这样,错误就会在构建时报告给开发人员/Hudson,并且可以根据需要解决。

我还建议使用像Sonar这样的工具来保留一段时间内格式化错误的历史记录(请参阅他们的时间机器功能)。


答案 2

为了获得项目格式一致的格式,您需要配置工具以自动执行此操作。我建议如下:

Eclipse Formatter

对于 Eclipse,在首选项(Java->Code Style->Formatter)中有一个选项,您可以在其中配置项目的格式设置方式。创建一个新的配置文件,并将您的配置放在那里。

完成后,有一个导出功能(它被很好地隐藏,单击“编辑”,然后单击“导出”)。将配置传递给团队的其他成员,以便 可以导入它。

日食保存操作

仍然配置格式化程序并不能保证开发人员在提交之前会格式化代码,因此您需要配置自动格式。

再次转到“首选项”(Java->编辑器>保存操作),然后选择“格式化源代码”。这样,在保存文件时即可设置代码的格式。

Eclipse Checkstyle Plugin

一些开发人员可能会忘记正确执行这些步骤,因此您需要一种方法来找到它。

为 Eclipse 安装 Checkstyle 插件:

安装插件后,您可以为其创建配置。然后,可以将配置导出给团队的其他成员,或者更好地上传到服务器并远程引用配置。

拥有远程配置的优点是,您还可以通过maven-checkstyle-插件引用它,并且它可以通过在CI服务器上启动它来为您提供报告。

如果你想成为硬核,你可以将基本配置(格式化程序自动完成的配置)设置为错误而不是警告,以便配置错误的 eclipse 的开发人员在提交之前看到错误。

预配置的 Eclipse

如果你想进入下一个级别,你可以创建一个预配置的eclipse,并将该版本分发给你的开发人员,这样他们就不需要做任何事情。

副作用加成:您可以避免开发平台上的版本不一致。配置管理不仅涉及源代码,还涉及开发工具。使事情更可预测。