使用spotless-maven插件覆盖google-java-format

时间:2018-04-25 17:13:27

标签: java maven formatting continuous-integration

我正在为我的团队实现一个预提交自动格式化程序,因为代码有点遍布。我喜欢一尘不染和谷歌风格,但一个粘滞点似乎是4空间缩进,而它目前正在输出2空格缩进。

有没有办法通过pom.xml覆盖这个值,无论是在一尘不染还是谷歌方面?

3 个答案:

答案 0 :(得分:2)

如Github所述,请在此处发布评论:https://github.com/diffplug/spotless/issues/420

您可以使用以下方法在Gradle构建中解决此问题:

indentWithTabs(2)
indentWithSpaces(4)

对于Maven,相同的代码将是:

    <java>
        <googleJavaFormat>
            <version>1.8</version>
            <style>GOOGLE</style>
        </googleJavaFormat>
        <indent>
            <tabs>true</tabs>
            <spacesPerTab>2</spacesPerTab>
        </indent>
        <indent>
            <spaces>true</spaces>
            <spacesPerTab>4</spacesPerTab>
        </indent>
    </java>

答案 1 :(得分:1)

快速更新:现在可以将一尘不染的插件配置为执行您想要的操作。即带有4个空格的google-java-format。

如文档中所述:https://github.com/diffplug/spotless/tree/main/plugin-maven 您现在可以使用满足您需要的AOSP“样式”。

      <googleJavaFormat>
        <version>1.8</version>
        <style>AOSP</style>
      </googleJavaFormat>

答案 2 :(得分:0)

根据设计,无法配置Google Java格式:https://github.com/google/google-java-format/pull/57#issuecomment-233450426

  

格式化程序的格式化算法没有可配置性。这是一个故意的设计决策,旨在将我们的代码格式统一为一种格式。

另请参阅:https://github.com/google/google-java-format/wiki/FAQ#i-just-need-to-configure-it-a-bit-differently-how