-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BSVR-54] Spotless pre-commit hook 추가 #4
Conversation
음... 간단한 내용이 아닌 듯해서 해당 PR 내용 중 모르는 부분은 내일 오전에 조금 찾아본 다음, 다시 PR 확인하고 |
아하 급한 내용은 아니라서, 그럼 찾아보고 리뷰 주시면 될 것 같아요~~~ (근데 저희 코드리뷰에선 다시 존댓말하나요??) |
여긴 좀 공적이라 존댓말이 낫지 않나 싶었는데, 편한 쪽으로 해도 될 거 같아요 ㅋㅋㅋ |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
@depromeet/15th-6team-server 요거 editorconfig 때문인데, 이게 google java style을 다 담고 있는 파일이라... 사이즈가 클 수 밖에 없다 ^.ㅠ |
spotless 얘도 xml 파일 intellij에서 코드 스타일 적용해줘야 하는 거지?? |
spotless { | ||
java { | ||
// Google Java 포맷 적용 | ||
googleJavaFormat().aosp() | ||
// 아래 순서로 import문 정렬 | ||
importOrder("java", "javax", "jakarta", "org", "com") | ||
// 사용하지 않는 import 제거 | ||
removeUnusedImports() | ||
// 각 라인 끝에 있는 공백을 제거 | ||
trimTrailingWhitespace() | ||
// 파일 끝에 새로운 라인 추가 | ||
endWithNewline() | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wjdwnsdnjs13 놉! 요기 build.gradle 보면 spotless에서 어떤 포맷을 사용할건지 설정해두었어~
그래서 별다른 설정 안해도 ./gradlew spotlessApply만 하면 알아서 적용될거야!
그런데 매번 spotlessApply를 하면 번거로우니까,
- ./gradlew compileJava를 돌릴때 (build.gradle tasks.named compileJava 부분)
- commit을 찍을 때 (.githooks의 pre-commit 부분)
내가 굳이 spotless을 돌리지 않아도 자동으로 동작하게 만들어둔게 pre-commit 설정~~
여기에 답변 달아두었오~ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
슬랙 내용까지 전부 확인 완료!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고하셨습니다~
@@ -0,0 +1 @@ | |||
* @EunjiShin @wjdwnsdnjs13 @pminsung12 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
루트 디렉토리의 모든 파일에 대해 특정 사용자 지정하는 방법이구나 👍🏻
// Google Java 포맷 적용 | ||
googleJavaFormat().aosp() | ||
// 아래 순서로 import문 정렬 | ||
importOrder("java", "javax", "jakarta", "org", "com") | ||
// 사용하지 않는 import 제거 | ||
removeUnusedImports() | ||
// 각 라인 끝에 있는 공백을 제거 | ||
trimTrailingWhitespace() | ||
// 파일 끝에 새로운 라인 추가 | ||
endWithNewline() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주석 👍🏻 이해완.
|
||
// git commit시 자동으로 spotless 적용되도록 설정 | ||
// 최초 적용시 && script 변경시 ./gradlew compileJava 한번 실행해주세요 | ||
tasks.register<Copy>("updateGitHooks") { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기서 .git/hooks에 파일을 바로 정의하지 않고, pre-commit에 정의해서 컴파일 하기 전에 복사하는 이유는 버전관리 떄문이야?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고것도 있는데, .git
폴더가 기본적으로 숨김폴더라서 직접 스크립트를 넣을 수가 없더라고!
또 .git
은 로컬에서 관리되는 값이지 리모트 저장소로 올라가는 값이 아니라서, .git
에 바로 정의하면 팀원끼리 해당 스크립트를 공유할 수가 없다고 하더라고??
저 스크립트가 각자의 로컬에 있어야 원하는대로 훅이 동작해서, 스크립트 공유 목적으로 빼둔거라고 생각하면 될 것 같아!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아 그러네 .git은 당연히 공유가 안되겠다 .github랑 개념을 혼동했다. 확인~
tasks.register<Exec>("makeGitHooksExecutable") { | ||
commandLine("chmod", "+x", "${rootProject.rootDir}/.git/hooks/pre-commit") | ||
dependsOn("updateGitHooks") | ||
} | ||
|
||
tasks.named<JavaCompile>("compileJava") { | ||
dependsOn("makeGitHooksExecutable") | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
compile 전에 githook이 무조건 걸리는구나 👍🏻
📌 개요 (필수)
🔨 작업 사항 (필수)
🌱 연관 내용 (선택)
./gradlew compileJava
한번만 돌려주세요!