5

我们根据自述文件将https://github.com/sherter/google-java-format-gradle-plugin连接到我们的项目中。

我们还连接了一个 pre-commit 钩子以在提交之前运行插件,这确保了更改列表中的所有代码在推送之前都已格式化,从而避免了 Jenkins 在运行verGJF任务时出错。

但是我们必须记住在运行goJF之前在本地运行./gradlew build,否则构建失败并出现格式错误。

我们通过为 IntelliJ 添加https://plugins.jetbrains.com/plugin/8527-google-java-formathttps://plugins.jetbrains.com/plugin/7642-save-actions插件来解决这个问题,启用google-java-format 插件,并将 save-actions 插件配置为在保存时格式化。

但这是开发人员必须记住的大量额外配置,而且这意味着他们在处理代码时无法按照自己想要的方式格式化代码,只能在构建或提交时重新格式化。

我们更喜欢全 Gradle 解决方案,以便goJF任务在任务之前运行build(并且在verGJF任务之前运行,该任务已经build通过 google-java-format Gradle 插件绑定到任务)。

我们无法弄清楚如何做到这一点。别人知道吗?

4

1 回答 1

6

听起来您基本上希望始终确保在verifyGoogleJavaFormat任务运行之前代码格式正确(并且可能会抱怨)。在这种情况下,我只需将googleJavaFormat任务作为任务的依赖verifyGoogleJavaFormat项。在您的build.gradle文件中,应用 google-java-format 插件后,只需添加以下内容:

verifyGoogleJavaFormat.dependsOn(tasks.googleJavaFormat)

或者,如果您真的只想在build任务运行时运行代码格式化程序(而不是verifyGoogleJavaFormat仅在任务运行时),您可以添加以下代码:

build.dependsOn(tasks.googleJavaFormat)
verifyGoogleJavaFormat.mustRunAfter(tasks.googleJavaFormat)
于 2020-04-04T20:03:05.273 回答