Spotless란?
Spotless는 코드 포맷팅을 자동화하여 프로젝트의 코드 스타일을 일관성 있게 유지하는 데 도움을 주는 Gradle 및 Maven 플러그인입니다. Spotless는 다양한 프로그래밍 언어와 파일 형식을 지원하며, Google Java Format, ktlint, Prettier 등과 같은 외부 코드 포맷터와 통합할 수 있습니다. 이러한 도구를 사용하여 코드의 일관성을 유지하고, 리뷰 프로세스를 간소화하며, 코드 품질을 향상시킬 수 있습니다. Spotless는 특히 여러 사람들이 함께하는 프로젝트에서 굉장한 위력을 발휘할 수 있습니다.
Spotless 적용법
Spotless를 프로젝트에 적용하려면 먼저 `build.gradle` 파일에 Spotless 플러그인을 추가해야 합니다.
id 'com.diffplug.spotless' version '6.21.0' // 상황에 맞는 버전을 사용해주세요!
Spotless 사용법
Spotless 플러그인은 매우 유연하며, 다양한 포맷터와 통합할 수 있습니다. 예를 들어, Google Java Format을 사용하여 Java 코드를 포맷팅하는 방법은 다음과 같습니다.
// build.gradle
spotless {
java {
googleJavaFormat()
removeUnusedImports()
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
}
물론 여러가지 부가적인 옵션들을 추가할 수도 있습니다.
spotless {
java {
removeUnusedImports() //사용하지 않는 import문 제거
trimTrailingWhitespace() //공백제거
indentWithSpaces(n) //n만큼의 스페이스로 들여쓰기, default=2
indentWithTabs() // 탭으로 들여쓰기
endWithNewline() // 각 파일의 끝이 새 줄로 끝나기
importOrder 'java', 'javax', 'org', 'com', 'com.diffplug' // import 순서
}
}
설정을 끝낸 이후 다음과 같은 명령어들을 입력하여 spotless를 적용할 수 있습니다.
./gradlew spotlessApply
특정 파일들에 대해서만 Spotless를 적용하는 방법
특정 디렉토리 또는 파일에만 포맷팅을 적용하려면 `target` 메서드를 사용하여 포맷팅을 적용할 파일을 지정할 수 있습니다. 아래 예제에서는 두 개의 디렉토리에 포맷팅을 적용하는 방법을 보여줍니다:
spotless {
java {
target fileTree('{디렉토리 경로명}').include('**/*.java'),
fileTree('{디렉토리 경로명}').include('**/*.java')
googleJavaFormat()
// 기타 설정 옵션
removeUnusedImports()
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
}
또한, 특정 파일에만 적용할 수도 있습니다.
spotless {
java {
/*
생략
*/
}
format 'misc', {
target '**/*.gradle', '**/*.md', '**/.gitignore'
trimTrailingWhitespace()
indentWithTabs()
endWithNewline()
}
}
'웹개발' 카테고리의 다른 글
MapStruct을 통한 오브젝트 매핑 (0) | 2024.01.19 |
---|---|
AWS ParameterStore을 이용해 스프링부트에서 API Key 관리하기 (0) | 2023.12.09 |
TDD (0) | 2023.09.26 |
사용자 인증 (0) | 2023.09.22 |
@ResponseStatus를 이용하여 커스텀 예외를 만드는 방법 (0) | 2023.09.02 |