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

如何使用maven在我的github工作流中根据google java格式格式化代码

程磊
2023-03-14

我在下面编写了这个工作流,以根据谷歌Java风格指南验证我项目中的Java格式。我的意图是在工作流中使用maven。

    # Checks that the code is formatted according to the
    # Google Java style guide
    name: Code Formatter Check
    on:
      push:
        branches: [main]

      pull_request:
        branches: [main]
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup JDK 1.8
            uses: actions/setup-java@v1
            with:
              java-version: 1.8
              distribution: 'adopt'
              cache: maven
          - name: Build with maven
            run: mvn --batch-mode --update-snapshots verify verifyGoogleJavaFormat

使用gradle,我可以使用chmod x gradlew使其可执行,并使用运行。

我的问题是,我怎样才能用maven做到这一点。通过以上工作流,我发现以下错误:

未知生命周期阶段“verifyGoogleJavaFormat”。


共有1个答案

柳坚白
2023-03-14

你需要包括一个支持谷歌Java格式的maven插件。你的目标验证Google JavaFormat似乎适用于Gradle,但不适用于Maven。一种选择是使用https://github.com/Cosium/git-code-format-maven-plugin.它支持格式验证和提交时自动格式化。

Github Repo文档声明您可以将其包含在pom中。xml如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>com.cosium.code</groupId>
            <artifactId>git-code-format-maven-plugin</artifactId>
            <version>3.3</version>
            <executions>
                <!-- On commit, format the modified java files -->
                <execution>
                    <id>install-formatter-hook</id>
                    <goals>
                        <goal>install-hooks</goal>
                    </goals>
                </execution>
                <!-- On Maven verify phase, fail if any file
                (including unmodified) is badly formatted -->
                <execution>
                    <id>validate-code-format</id>
                    <goals>
                        <goal>validate-code-format</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

现在,当我在未格式化的项目上运行mvn verify时,我得到一个错误:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  6.090 s
[INFO] Finished at: 2022-03-12T17:56:13+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.cosium.code:git-code-format-maven-plugin:3.3:validate-code-format (validate-code-format) on project javatest: /home/bisensee/repos/javatest/src/main/java/Position.java is not correctly formatted ! -> [Help 1] 

当我们进行下一次提交时,格式化程序将通过Git钩子自动应用,并且下一次mvn验证成功。

 类似资料:
  • 当前状态: 我有一个使用Java 1.8.161、Maven 3.3.9、SpringBoot 2.0.1、工具Jenkins和GitLab构建的项目。我想使用google java格式作为整个团队的标准。 我的调查/解决方案: 在调查过程中,我找到了解决方案,这听起来很简单。只需更新pom文件: 而且很有效。如果我运行编译、打包、验证、安装或部署Maven lifecycle,代码就会格式化。

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

  • 如何将格式化为合流?我的意思是,不是单独的代码块,而是内联。

  • ...这不起作用,因为我在管道执行之前调用get()。到目前为止,我还没有将为do_some_stuff函数所做的调整到“read”行 任何关于如何进行的建议或解决方案都将不胜感激。谢了!

  • 例如,Xcode有一个XAlign(https://github.com/qfish/XAlign),允许用户选择需要对齐的代码,并使用快捷方式自动对齐。 Android Studio中有一个字段组特性,可以“列对齐”,但它对已经编写好的代码不起作用。

  • 如何在Eclipse中自动格式化代码?