当前位置: 首页 > 知识库问答 >
问题:

如何根据google java格式格式化代码

全宪
2023-03-14

当前状态:

我有一个使用Java 1.8.161、Maven 3.3.9、SpringBoot 2.0.1、工具Jenkins和GitLab构建的项目。我想使用google java格式作为整个团队的标准。

我的调查/解决方案

在调查过程中,我找到了解决方案,这听起来很简单。只需更新pom文件:

<build>
    <plugins>
        <plugin>
            <groupId>com.coveo</groupId>
            <artifactId>fmt-maven-plugin</artifactId>
            <version>2.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>format</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

而且很有效。如果我运行编译、打包、验证、安装或部署Maven lifecycle,代码就会格式化。

问题:

我如何在所有团队成员每次提交后运行此操作,而不在他们的想法中添加任何额外步骤?因为现在,我需要在每次提交之前运行Maven。但在应用程序运行期间,这是不必要的,因此团队可以避免它。。这当然会导致git的历史问题。

共有3个答案

云承弼
2023-03-14

每次提交前我都要查查马文

你不需要运行多个maven目标。例如,无需运行maven install进行格式化。将编译 简单代码 类。

赵飞雨
2023-03-14

为了在每次开发人员提交后运行这个格式化程序,您必须首先有一个詹金斯提交钩子,这将触发詹金斯构建。构建的一个阶段应该执行fmt-maven-plugin的(或任何其他)check功能,以确保代码被正确格式化。

首先要做的是添加一个webhook,它将在git存储库中的每次提交后触发Jenkins构建。你可以在这里找到如何做到这一点。对于Gitlab的具体说明,这篇来自medium的帖子可能会有所帮助。

这可以通过在fmt maven插件上执行check目标来实现

Maven接受<代码>

mvn fmt:check

也就是说,您必须添加一个Jenkins构建步骤,该步骤将运行上述命令。本教程的第5步向您展示了如何添加构建步骤。

希望这真的有帮助: D

万俟鸿波
2023-03-14

您可以让预提交钩子触发提交文件的格式化程序

git-code-format-maven-plugin使用google-java-formatter,可以在编译阶段安装客户端预提交git钩子,需要Maven 3.5. x,应该强制执行。

<build>
  <plugins>
    <plugin>
      <groupId>com.cosium.code</groupId>
      <artifactId>git-code-format-maven-plugin</artifactId>
      <version>VERSION</version>
      <executions>
        <execution>
          <goals>
            <goal>install-hooks</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-enforcer-plugin</artifactId>
      <version>VERSION</version>
      <executions>
        <execution>
          <goals>
            <goal>enforce</goal>
          </goals>
          <configuration>
            <rules>
              <requireMavenVersion>
                <version>[3.5.4,)</version>
              </requireMavenVersion>
            </rules>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

指出IDE中的独立Maven,因为git代码格式的Maven插件不能很好地与嵌入式Maven配合使用。

mvn编译以安装钩子。我的想法就是这样。

由于git code format maven plugin只对更改的文件进行格式化(这很好),所以最好预先格式化整个项目一次(mvn git code format:format code-Dgcf.globPattern=***)。

因为在Windows中使用Cygit的开发者有时会完全忽略Windows中的Cygit钩子。一个空的cygpath。exe就可以了。以管理员身份运行“命令提示符”,并执行C:\

重启。

在IDE中优化导入或重新格式化,或使用插件重新格式化,可能会导致导入顺序的更改。如果git code format maven plugin的旧版本与fmt maven plugin一起使用(例如,在CI中格式化或验证代码),这将是一个令人不快的惊喜。

  • git代码格式maven插件将对导入进行排序(从1.20版开始)

 类似资料:
  • 我已经为我的WebStorm项目指定了eslint配置。但它似乎不适用于代码重新格式化功能。例如,它继续将< code > import { something } from ' something ' 格式化为< code > import { something } from ' something ' 。 有没有办法让WebStom根据eslint配置格式化代码?

  • 我在下面编写了这个工作流,以根据谷歌Java风格指南验证我项目中的Java格式。我的意图是在工作流中使用maven。 使用gradle,我可以使用chmod x gradlew使其可执行,并使用

  • 问题内容: 我有一些格式不一致的现有代码-有时两个空格用于缩进,有时四个空格,以此类推。代码本身是正确的,并且经过了严格的测试,但是格式却很糟糕。 在线上是否有一个地方,我可以简单地粘贴一段Python代码并自动为我缩进/设置格式?或者,是否可以执行类似的操作,并用格式化的版本覆盖每个文件? 问题答案: 编辑:如今,我建议使用autopep8,因为它不仅可以纠正缩进问题,而且(根据您的判断)可以使

  • 操作步骤: 菜单栏: Code —> Reformat Code 右键菜单: Reformat Code 快捷键: Mac: option + command + L Windows\/Linux: Ctrl + Alt + L 配置格式化选项 通过快捷键(Mac): option + command + shift + L 打开配置对话框 自动缩进行 操作步骤: 菜单栏: Code —> Aut

  • Go 开发团队不想要 Go 语言像许多其它语言那样总是在为代码风格而引发无休止的争论,浪费大量宝贵的开发时间,因此他们制作了一个工具:go fmt(gofmt)。这个工具可以将你的源代码格式化成符合官方统一标准的风格,属于语法风格层面上的小型重构。遵循统一的代码风格是 Go 开发中无可撼动的铁律,因此你必须在编译或提交版本管理系统之前使用 gofmt 来格式化你的代码。 尽管这种做法也存在一些争论

  • 问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为