Spotless로 코드 서식 표준화

전체 팀의 표준으로 코드를 구성하고 형식을 지정하는 것은 중요하고 유용합니다. 프로젝트 내에서 코드 서식을 지정하기 위한 표준을 따르지 않으면 다음과 같은 문제가 발생합니다.
  • 리포지토리에서 업데이트하는 동안 및 병합하는 동안 충돌이 발생합니다
  • .
  • 선호하는 형식을 사용하는 개발자
  • 코드를 커밋할 때 더 많은 변경 사항을 표시하는 IDEA의 다른 자동 서식 설정

  • 코드 서식과 관련하여 표준을 설정하려면 모든 사람이 가져올 공통 구성 파일을 설정하거나 Google Java 형식 등을 포함한 기존 코드 서식 표준을 사용하도록 구성할 수 있는 Spotless와 같은 것을 사용할 수 있습니다.

    Spotless는 Java, Groovy, Kotlin, Scala, C/C++, Python, Sql, Typescript와 같은 많은 언어에서 사용할 수 있습니다.


    여기서는 우리가 애플리케이션에서 사용하고 있는 Spotless의 사용법을 설명하겠습니다.

    설정은 정말 간단하며 Maven 또는 Gradle을 사용하는 것과 상관없이 단 두 단계로 구성됩니다.
  • 완벽한 종속성 포함: "com.diffplug.spotless"
  • 서식 기본 설정에 따라 플러그인 구성
  • 빌드의 일부로 만들기(선택 사항이지만 권장됨)

  • 완벽한 종속성을 포함



    메이븐

    <dependency>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
    </dependency>
    


    그레이들

    dependencies {
        implementation("com.diffplug.spotless:spotless-lib:${spotlessLibVersion}")
        implementation("com.diffplug.spotless:spotless-plugin-gradle:${spotlessVersion}")
    }
    


    플러그인 구성



    메이븐

    <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <configuration>
            <ratchetFrom>origin/develop</ratchetFrom>
            <java>
                <includes>
                    <include>src/main/java/**/*.java</include>
                    <include>src/test/java/**/*.java</include>
                </includes>
                <importOrder />
                <removeUnusedImports />
                <toggleOffOn/>
                <trimTrailingWhitespace/>
                <endWithNewline/>
                <indent>
                    <tabs>true</tabs>
                    <spacesPerTab>4</spacesPerTab>
                </indent>
                <palantirJavaFormat/>
            </java>
        </configuration>
    </plugin>
    


    그레이들

    spotless {
        java {
            target fileTree('.') {
                include '**/*.java'
                exclude '**/build/**', '**/build-*/**'
            }
            toggleOffOn()
            palantirJavaFormat()
            removeUnusedImports()
            trimTrailingWhitespace()
            endWithNewline()
        }
    }
    


    서식 지정을 위해 위의 예에서 사용된 일반적인 구성



  • importOrder - 모든 가져오기가 주문됩니다
  • .

  • removeUnusedImports - 사용하지 않은 가져오기가 제거됨

  • toggleOffOn - 주석으로 코드의 서식을 전환합니다
  • .

  • trimTrailingWhitespace - 코드의 모든 후행 공백이 제거됨

  • endWithNewline - 파일이 새 줄로 끝납니다
  • .

    완벽한 코드 실행



    메이븐mvn spotless:apply - To implement automated code formatting
    mvn spotless:check - To validate if code was formatted

    그레이들
    .\gradlew clean build spotlessApply - To implement automated code formatting
    .\gradlew clean build spotlessCheck - To validate if code was formatted​​​​​​​

    참조: Github/spotless

    좋은 웹페이지 즐겨찾기