- 适用于 JDK 24 的 GraalVM(最新)
- 适用于 JDK 25 的 GraalVM(早期访问)
- 适用于 JDK 21 的 GraalVM
- 适用于 JDK 17 的 GraalVM
- 存档
- 开发构建
Native Image 代码风格
为确保代码质量以及所有贡献者遵循相同标准,我们建立了一套规则集,它随着时间推移而发展并被证明是有用的。请注意,这些规则欢迎讨论!
源代码格式化 #
使用 mx ideinit
生成的 IDE 项目配置了严格的格式化规则。在 Eclipse 中,当文件保存时,它会根据这些规则自动格式化。此配置包括特殊注释,可用于放宽特定代码区域的检查。
源代码格式化可以通过特殊注释禁用
//@formatter:off
//@formatter:on
注释重新格式化可以这样禁用
/*-
*
*/
使用 Checkstyle 进行检查 #
Checkstyle 用于验证是否遵循样式规则。可以通过 mx checkstyle
手动运行它。
默认的 Checkstyle 规则定义在 src/com.oracle.svm.core/.checkstyle_checks.xml
中,并定义了各种特殊注释,包括
//Checkstyle: stop method name check
//Checkstyle: resume method name check
以及其他可禁用检查的类似命令(包括通用的 stop
和 resume
命令)。当然,确保合理使用这些注释是代码审查的事宜。
如果一个项目需要不同的 Checkstyle 规则集,可以在 mx.substratevm/suite.py
中通过更改项目 checkstyle
属性的值来指定(该属性默认引用 com.oracle.svm.core
)。特定的代码文件可以通过一个名为 src/<project name>/.checkstyle.exclude
的文件以目录粒度从 Checkstyle 中排除。此类排除文件必须每行包含一个目录,路径相对于项目根目录。该文件必须通过 git add
明确添加,因为 git 默认会忽略它。
当拉取添加或删除 Checkstyle XML 文件的变更集时,IDE 可能会显示不适当的样式警告或错误。这可以通过运行 mx ideinit
并清理受影响的项目来解决。
IDE 集成 #
IDE 插件有助于遵循样式规则。一些示例如下:
- Eclipse Checkstyle Plugin:在 Eclipse 中报告 Checkstyle 违规,从而无需手动运行
mx checkstyle
。 - IntelliJ Eclipse Code Formatter:根据 Eclipse IntelliJ 规则在 IntelliJ 中格式化源文件。此插件由
mx ideinit
自动配置。 - IntelliJ Save Actions:在保存文件前自动格式化文件。
有关更多建议,请参阅 IDE 集成文档。