Spotless + Java Google 格式与 Intellij + 导入文件

mps*_*tos 8 java maven google-java-format spotless

我正在尝试配置 Maven Spring Boot 应用程序以使用具有 google java 格式样式的一尘不染。我也希望 Intellij 像 Maven 插件一样格式化代码。

但我注意到应用的格式略有不同。

举个例子:Intellij不会改变下面两行

@Mock 
private UserRepository userRepositoryMock;
Run Code Online (Sandbox Code Playgroud)

但是maven插件(使用命令:mvn Spotless:apply)将格式化如下:

@Mock private UserRepository userRepositoryMock;
Run Code Online (Sandbox Code Playgroud)

项目管理配置

<plugin>
                <groupId>com.diffplug.spotless</groupId>
                <artifactId>spotless-maven-plugin</artifactId>
                <version>${spotless.version}</version>
                <configuration>
                    <!-- optional: limit format enforcement to just the files changed by this feature branch -->
                    <ratchetFrom>origin/master</ratchetFrom>
                    <formats>
                        <!-- you can define as many formats as you want, each is independent -->
                        <format>
                            <!-- define the files to apply to -->
                            <includes>
                                <include>*.md</include>
                                <include>.gitignore</include>
                            </includes>
                            <!-- define the steps to apply to those files -->
                            <trimTrailingWhitespace/>
                            <endWithNewline/>
                            <indent>
                                <spaces>true</spaces>
                                <spacesPerTab>4</spacesPerTab>
                            </indent>
                        </format>
                    </formats>
                    <!-- define a language-specific format -->
                    <java>
                        <!-- no need to specify files, inferred automatically, but you can if you want -->
                        <importOrder>  <!-- or a custom ordering -->
                            <order>java,javax,org,com,microservices.book.multiplication,
                            </order>  <!-- or use <file>${project.basedir}/eclipse.importorder</file> -->
                            <!-- you can use an empty string for all the imports you didn't specify explicitly, and '\\#` prefix for static imports -->
                        </importOrder>

                        <removeUnusedImports/> <!-- self-explanatory -->

                        <!-- apply a specific flavor of google-java-format and reflow long strings -->

                        <googleJavaFormat>
                            <version>1.14.0</version>
                            <style>GOOGLE</style>
                            <reflowLongStrings>true</reflowLongStrings>
                        </googleJavaFormat>
                        <indent>
                            <tabs>true</tabs>
                            <spacesPerTab>2</spacesPerTab>
                        </indent>
                        <indent>
                            <spaces>true</spaces>
                            <spacesPerTab>4</spacesPerTab>
                        </indent>
                    </java>
                </configuration>
            </plugin>
Run Code Online (Sandbox Code Playgroud)

在 Intellij 上 ,我添加了来自 google 的以下代码

Github 站点 https://github.com/google/google-java-format

IntelliJ Java Google 样式文件 https://raw.githubusercontent.com/google/styleguide/gh-pages/intellij-java-google-style.xml

Intellij 代码风格窗口

为什么会有这些差异?还有什么可能不同?如何让 Intellij 完全按照 google java 代码样式格式 xml 文件来格式化代码?

非常感谢您提前提供的帮助

问候

小智 0

从文档中修复注释问题:

<!-- fixes formatting of type annotations, see below -->
<formatAnnotations />
Run Code Online (Sandbox Code Playgroud)