使用Spotless配置Palantir Java代码格式化 | AI生成和翻译

Home 2025.07

要在 pom.xml 文件中配置 Palantir Java FormatSpotless Maven 插件,您需要设置插件以使用 palantirJavaFormat 并指定格式化选项,如制表符空间、缩进、导入顺序和其他设置。以下是基于 Spotless 插件和 Palantir Java Format 配置这些设置及可用选项的详细指南。

添加带有 Palantir Java Format 的 Spotless Maven 插件

在您的 pom.xml 中包含 Spotless Maven 插件,并将其配置为使用 palantirJavaFormat。以下是一个基本设置,包含制表符空间、缩进、导入顺序和其他选项的常见配置:

<plugin>
    <groupId>com.diffplug.spotless</groupId>
    <artifactId>spotless-maven-plugin</artifactId>
    <version>2.43.0</version> <!-- 使用最新版本 -->
    <configuration>
        <java>
            <!-- 指定要格式化的文件(可选,默认为所有 .java 文件) -->
            <includes>
                <include>src/main/java/**/*.java</include>
                <include>src/test/java/**/*.java</include>
            </includes>
            <!-- Palantir Java Format -->
            <palantirJavaFormat>
                <version>2.53.0</version> <!-- 指定所需版本 -->
                <style>GOOGLE</style> <!-- 选项:GOOGLE、AOSP 或 PALANTIR -->
                <formatJavadoc>true</formatJavadoc> <!-- 可选:格式化 Javadoc -->
            </palantirJavaFormat>
            <!-- 缩进设置 -->
            <indent>
                <tabs>true</tabs> <!-- 使用制表符而非空格 -->
                <spacesPerTab>4</spacesPerTab> <!-- 每个制表符的空格数 -->
            </indent>
            <!-- 导入顺序配置 -->
            <importOrder>
                <order>java,javax,org,com,\\#</order> <!-- 自定义导入顺序 -->
            </importOrder>
            <!-- 移除未使用的导入 -->
            <removeUnusedImports/>
            <!-- 其他可选设置 -->
            <trimTrailingWhitespace/>
            <endWithNewline/>
            <toggleOffOn/> <!-- 启用 spotless:off 和 spotless:on 标签 -->
        </java>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>apply</goal> <!-- 自动格式化代码 -->
            </goals>
            <phase>validate</phase> <!-- 在验证阶段运行 -->
        </execution>
    </executions>
</plugin>

配置选项说明

以下是 Spotless 中 java 部分与 palantirJavaFormat 配合使用时关键配置选项的细分,重点关注制表符空间、缩进、导入顺序和其他相关设置:

1. Palantir Java Format (<palantirJavaFormat>)

2. 缩进 (<indent>)

3. 导入顺序 (<importOrder>)

4. 其他有用设置

5. POM 特定格式化 (<pom>)

要格式化 pom.xml 文件本身,请使用带有 sortPom<pom> 部分:

<pom>
    <sortPom>
        <nrOfIndentSpace>2</nrOfIndentSpace> <!-- POM 的缩进 -->
        <predefinedSortOrder>recommended_2008_06</predefinedSortOrder> <!-- 标准 POM 顺序 -->
        <sortDependencies>groupId,artifactId</sortDependencies> <!-- 对依赖项排序 -->
        <sortPlugins>groupId,artifactId</sortPlugins> <!-- 对插件排序 -->
        <endWithNewline>true</endWithNewline>
    </sortPom>
</pom>

运行 Spotless

注意事项与最佳实践

可用选项摘要

选项 描述 示例值
<palantirJavaFormat> 配置 Palantir Java Format。 <version>2.53.0</version>, <style>PALANTIR</style>
<indent> 设置缩进样式(制表符或空格)和大小。 <tabs>true</tabs>, <spacesPerTab>4</spacesPerTab>
<importOrder> 定义导入组顺序或使用文件。 <order>java,javax,org,com,\\#</order>
<removeUnusedImports> 移除未使用的导入,带有可选引擎。 <engine>cleanthat-javaparser-unnecessaryimport</engine>
<trimTrailingWhitespace> 移除行尾空白字符。 <trimTrailingWhitespace/>
<endWithNewline> 确保文件以换行符结尾。 <endWithNewline/>
<toggleOffOn> 启用 spotless:off/spotless:on 标签。 <toggleOffOn/>
<licenseHeader> 添加许可证头。 <content>/* (C) $YEAR */</content>
<formatAnnotations> 将注解格式化为与字段位于同一行。 <formatAnnotations/>
<sortPom> 使用排序和缩进格式化 pom.xml <nrOfIndentSpace>2</nrOfIndentSpace>

来源

此配置确保使用 Palantir Java Format 实现一致的代码格式化,并根据您对制表符空间、缩进和导入顺序的偏好进行定制。如果您需要进一步说明或其他选项,请告知!


Back Donate