본문 바로가기
Study in Bootcamp/Pre-Project

[Pre-Project] Day 7 : CheckStyle Convention Build

by Bhinney 2022. 10. 28.

프로젝트를 하는 과정에 있어서 기록하는 것이다.

잘못된 부분이나 수정이 필요한 부분은 꾸준히 수정할 예정이다.

 

❗️만약 " A failure occurred while executing org.gradle.api.plugins.quality.internal.CheckstyleAction" ,

"Unable to create Root Module" 키워드로 검색해서 지금 포스팅에 들어왔다면 3️⃣ 확인 혹은 링크 클릭 ❗️

 

Intelli J 네이버 코딩 컨벤션 적용 및 Check Style Build

지난 프리 프로젝트를 하면서 프로젝트에 코딩 컨벤션을 적용하고, 빌드에 포함시키면서 작업을 하였다. 힘들기도 했지만, 깔끔하고 가독성이 좋게 코드가 정리가 되었던 경험이 좋았다. 해당

bhinney.tistory.com


🚨 CheckStyle Build Error

  • 문제 발생의 서막 : 아침에 인텔리제이 우측 코끼리(Gradle)에서 build를 시켰더니 아래의 에러가 뜨고, 빌드가 계속 실패가 되었다.
> A failure occurred while executing org.gradle.api.plugins.quality.internal.CheckstyleAction
   > Unable to create Root Module: config {/Users/{폴더 경로들}/server/naver-checkstyle-rules.xml}, classpath {null}.

 

1️⃣ 첫 번째 재 클론

: 어차피 git flow가 꼬여서 다시 작업을 해야하는 상황이었다. 해당 문제가 pull에서 모든 파일이 들어오지 못한 것이라고 생각이 들었고, 어차피 플로우가 꼬였으니 지우고 새롭게 해보자라는 생각으로 지우고 재 클론을 받았다.

 

✓ feat 브랜치에서 작업중 dev 브랜치 pull 과정이 꼬였다.

✓ 이유 : 내가 작업 끝날 때 마다 feat 브랜치로 commit을 날리고, 아직 dev에서는 머지하지 않았는데 dev에 설정과 관련된 수정사항이 바뀌어 pull이 필요했다.

✓ 다른 코드를 입력하지 않고 굳이 지운 이유 :  머지를 날리는 것도 안되고, 이동도 안되고, 새 브랜치만 생성되었기 때문이다.

✓ 위의 원인은 찾지 못했으나, 아마 내가 하는 과정에서 무언가 잘못한거지 않을 까 하는 생각을 한다.

✓ 이후 수정을 위해 feat의 feat을 하고 이걸 바로 dev 머지후 받으려고 하니 비슷했기 때문이다. 

 

 

2️⃣ 두 번째 zip 파일로 다운

: 이상하게 계속 에러가 나고 해당 에러의 해결책을 찾지 못했다. 그래서 다 클론이 계속 안되는 것일까봐 아예 dev 브랜치에서 압축 파일로 저장하여 풀어보았다.

그럼에도 불구하고 계속해서 체크 스타일이 빌드 에러가 났다. 

 

 

3️⃣ 세 번째 재 클론

: 네 시간 쯤 지났을 까... 거의 반 포기 상태로 이것 저것 폴더를 눌러보고 다시 에러를 확인했다. 근데 여기서 문제를 발견한 것이다...!

> A failure occurred while executing org.gradle.api.plugins.quality.internal.CheckstyleAction
   > Unable to create Root Module: config {/Users/{폴더 경로들}/server/naver-checkstyle-rules.xml}, classpath {null}.

 

다시 이 코드를 살펴보면, 해당 classpath가 null인 것이다. 근데 나는 이 컨벤션 파일을 server 파일이 아닌 프로젝트 전체 파일 안에다 넣어 놨기 때문에 null 이 나왔던 것...!

아래에 사진을 참조하면 그 차이가 보일 것이다. 왼쪽이 전의 위치고 오른쪽이 후의 위치다.

왼쪽이 전, 오른쪽이 후

 

그렇다면, 내가 애초에 잘못 경로를 표시했냐! 그건 아니다. gradle은 애초에 아래의 코드처럼 입력을 했다. 근데 빌드를 돌리니 알아서 서버로 들어간 것!

의심되는 이유는, 아마 server안에가 우리 백엔드 팀의 파일이기 때문이다. 그래서 그 안에서 빌드 되기 때문에 그 안에서 파일을 찾은 것 같다. 

checkstyle {
	maxWarnings = 0
	configFile = file("${rootDir}/naver-checkstyle-rules.xml")
	configProperties = ["suppressionFile": "${rootDir}/naver-checkstyle-suppressions.xml"]
	toolVersion = "9.2"
}

 

위에 사진처럼 컨벤션 파일들을 안으로 넣어주니까  ./gradlew하라고해서 했더니 해결되었다...!!!!!!!

이거는 따로 기타에다가 블로깅을 해서 컨벤션 하는 법을 정리해둬야겠다.

사실 회고처럼 이렇게 쓴 이유는... 지금 너무 감격스러워서....🥹


🚨 Git Flow 주의

  • 문제 발생 : dev-be 브랜치에 기본 설정 파일 수정한 부분을 merge후 해당 내용을 pull 받으려고 하는 과정에서 꼬임 발생
  • 원인 : 내가 하나의 작업이 끝날 때마다 작업 중인 나의 feat 브랜치로 commit을 날려서 해당 브랜치에는 계속 수정이 발생
  • fetch 하지 않고 지운 이유
    • 머지 시도도 안먹히고
    • 브랜치 이동도 안되고
    • 새 브랜치만 생성이 되고
    • 또 그 안에서 바뀐 걸 commit 했으나 그 어떤 브랜치에도 저장이 안됨.
  • 예상 가는 원인 : feat 브랜치에서 새로운 브랜치를 또 만들고 그 안에서 check point 작업후 해당 내용을 dev-be에 머지했을 때, 같은 원인이 발생했음. 내가 무언가 하는 과정에서 새로운 브랜치를 생성시켰거나 무언가 잘못 입력하지 않았을 까 생각 된다.

 

 

댓글