如何在构建步骤中配置 Gradle google-java-format 插件以运行 goJF?

Jim*_*ter 4 intellij-idea gradle google-java-format

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

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

但是我们必须记住在运行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 插件绑定到任务)。

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

Chr*_*iki 5

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

verifyGoogleJavaFormat.dependsOn(tasks.googleJavaFormat)
Run Code Online (Sandbox Code Playgroud)

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

build.dependsOn(tasks.googleJavaFormat)
verifyGoogleJavaFormat.mustRunAfter(tasks.googleJavaFormat)
Run Code Online (Sandbox Code Playgroud)