gradle plugin과git hook을 이용한 자동화 코드 포맷
좋은 코드 규범은 코드의 가독성을 증가시켜 코드의 유지보수성을 높일 수 있다.이 동시에 통일된 코드 규범은 불필요한 번거로움을 줄일 수 있다. 예를 들어 한 사람이 두 개의 빈칸을 축소하는 습관이 있고 다른 사람이 네 개의 빈칸을 설정했다. 만약에 두 번째 사람이 첫 번째 사람의 일부 코드만 수정했지만 이때 IDE가 포맷을 했다. 버전 제어의 diff 도구는 전체 코드 파일을 수정했다고 생각하고 온몸을 움직인다. 풀을 잡고 뱀을 놀라 허풍을 떨지 않을 수 없다.
코드 규범을 통일시키기 위해 우리가 가장 먼저 사용한 방법은 Checkstyle 플러그인을 사용하는 것이다. 코드가 규범에 부합되지 않으면 지속적인 통합 중인 마ven이나gradle의 구축 과정은 실패할 것이다.
그러나 자신이 원하지 않는 것은 남에게 베풀지 않고 코드에 대한 포맷 요구가 증가하면 반드시 대응하는 코드 포맷 도구를 제공해야 한다. 그렇지 않으면 인공 포맷 코드는 작업량을 증가시킬 수 있다. 예를 들어 매번 control+shift+f를 누르면 세 번의 버튼이 필요하다.코드를 자동으로 포맷하려면 eclipse에save actions를 설정할 수 있고 아이디어에는save actions 플러그인을 설치할 수 있으며 파일을 저장할 때 자동format을 할 수 있습니다.
우수한 코드의 설계 원칙은 중심화 설정과 문제를 신속하게 발견하는 것을 포함하지만 위의 방안은 두 가지 단점이 있다.
이제 스팟 애플 플러그인을 찾았고git의 훅과 결합하여 이 두 문제를 해결했다.gradle에서 다음과 같이 설정합니다
plugins {
id 'java'
id "com.diffplug.gradle.spotless" version "3.16.0"
}
group 'test'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
spotless {
java {
googleJavaFormat()
indentWithTabs(2)
indentWithSpaces(4)
}
}
def hook = new File("$rootProject.projectDir/.git/hooks/pre-commit")
hook.text = """#!/bin/bash
echo "will run nova code format"
./gradlew spotlessApply
"""
우선gradle의 강력한 코드 능력을 빌려 프로젝트의git 디렉터리에 훅을 자동으로 만들고 이 훅은git의commit 이전에
gradlew spotlessApply
를 실행하여 코드의 자동 포맷을 진행한다.모든 사람이 IDE를 설정하거나 포맷되지 않은 코드 커밋을 방지할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.