clang-format의 레이아웃 알고리즘을 바탕으로 설정한 스타일에 맞게 Python 소스 파일을 재구성하는 코드 포매터입니다.
diffplug/spotless
여러 언어와 파일 형식에 코드 포매터와 린터를 적용하는 Gradle 및 Maven용 빌드 플러그인 프레임워크입니다.
- 스타
- 5,722
- 포크
- 567
- 열린 이슈
- 251
- 마지막 커밋
- 6시간 전
어떤 프로젝트인가요?
Spotless는 프로젝트의 소스 파일에 코드 포매터를 적용하고, 파일 형식이 올바르지 않으면 빌드를 실패시키는 빌드 도구 플러그인입니다. Gradle과 Maven에서 사용할 수 있으며, SBT 플러그인은 별도로 관리됩니다. spotlessApply 같은 명령 하나로 형식이 잘못된 파일을 다시 쓰고, spotlessCheck로 해당 파일을 찾아 CI에서 포맷을 강제할 수 있습니다.
Spotless는 Java, Kotlin, Groovy, Scala, JavaScript, TypeScript, SQL, YAML, Markdown, Python, C++, 셸 스크립트 등 폭넓은 언어를 지원합니다. google-java-format, ktlint, Prettier, Black, clang-format 등 널리 쓰이는 포매터를 래핑하며, 정규식 치환, 공백 제거, 라이선스 헤더 적용, 임의의 네이티브 명령 실행을 위한 범용 단계도 제공합니다.
이 프로젝트는 멱등성 검사, 인코딩 및 줄바꿈 처리, 변경된 파일만 포맷하는 Git 기반 ratcheting, Gradle 빌드 캐시 및 구성 캐시 지원 등 통합과 관련된 문제도 처리합니다.
핵심 기능
- 01spotlessCheck 및 spotlessApply 태스크로 포맷을 검사하고 자동 수정합니다.
- 02Java, Kotlin, Groovy, Scala, JavaScript, TypeScript, SQL, YAML, Markdown 등을 지원합니다.
- 03google-java-format, ktlint, Prettier, Black, clang-format 등의 포매터를 래핑합니다.
- 04Git ref를 기준으로 포맷 적용 범위를 좁혀 변경된 파일만 처리합니다.
- 05정규식 치환, 공백 제거, 라이선스 헤더 적용을 위한 범용 단계를 제공합니다.
활용 사례
- CI에서 여러 언어를 사용하는 Java 또는 Kotlin 모노레포의 코드 스타일을 일관되게 유지합니다.
- 로컬 개발 중 pull request에서 변경된 파일만 자동으로 포맷합니다.
- 빌드에 포함된 모든 소스 파일에 라이선스 헤더를 적용하거나 import 순서를 정리합니다.
- 애플리케이션 코드와 함께 SQL, YAML, Markdown도 하나의 도구로 포맷합니다.
빠른 시작
- 1
plugin-gradle 또는 plugin-maven 가이드에 따라 Gradle 또는 Maven 빌드에 Spotless 플러그인을 추가합니다
- 2
Gradle로 포맷을 적용합니다
./gradlew spotlessApply - 3
Maven으로 포맷을 적용합니다
mvn spotless:apply
사용 전 알아둘 점
- 공식 지원은 Gradle과 Maven만 대상으로 합니다. SBT 통합은 외부에서 제공합니다.
- 기능 및 포매터 지원은 빌드 도구에 따라 다르므로 일부 단계는 Gradle에서만 사용할 수 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- spotless은(는) 무엇인가요?
- 여러 언어와 파일 형식에 코드 포매터와 린터를 적용하는 Gradle 및 Maven용 빌드 플러그인 프레임워크입니다. Spotless는 프로젝트의 소스 파일에 코드 포매터를 적용하고, 파일 형식이 올바르지 않으면 빌드를 실패시키는 빌드 도구 플러그인입니다. Gradle과 Maven에서 사용할 수 있으며, SBT 플러그인은 별도로 관리됩니다. spotlessApply 같은 명령 하나로 형식이 잘못된 파일을 다시 쓰고, spotlessCheck로 해당 파일을 찾아 CI에서 포맷을 강제할 수 있습니다.
- spotless은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- spotless은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- spotless은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. spotless의 마지막 커밋은 2026년 11월 7일입니다.
- spotless은(는) 어디에 사용할 수 있나요?
- CI에서 여러 언어를 사용하는 Java 또는 Kotlin 모노레포의 코드 스타일을 일관되게 유지합니다. 로컬 개발 중 pull request에서 변경된 파일만 자동으로 포맷합니다. 빌드에 포함된 모든 소스 파일에 라이선스 헤더를 적용하거나 import 순서를 정리합니다. 애플리케이션 코드와 함께 SQL, YAML, Markdown도 하나의 도구로 포맷합니다.
- spotless는 어떻게 설치하나요?
- plugin-gradle 또는 plugin-maven 가이드에 따라 Gradle 또는 Maven 빌드에 Spotless 플러그인을 추가합니다 Gradle로 포맷을 적용합니다: ./gradlew spotlessApply Maven으로 포맷을 적용합니다: mvn spotless:apply
- spotless은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/diffplug/spotless
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Ruby 커뮤니티 스타일 가이드 규칙을 적용하고 여러 위반 사항을 자동 수정하는 Ruby 정적 코드 분석기이자 포매터입니다.
Black은 최소한의 diff로 파일을 직접 다시 작성하는, 고유한 스타일을 적용하는 결정론적 Python 코드 포매터입니다.
PER-CS와 Symfony 등 PHP 코딩 표준에 맞게 코드를 자동으로 수정하는 PHP CLI 도구입니다.
Python import 문을 자동으로 정렬하고 그룹화하는 유틸리티이자 라이브러리입니다.
Java, Kotlin, Android 라이브러리와 소스 및 javadoc을 Maven Central이나 다른 Nexus 저장소에 배포하는 Gradle 플러그인입니다.