티스토리 뷰
[IntelliJ] Artifacts recursion directory 문제해결.(feat.war_exploded)
종벌🍀 2025. 11. 5. 17:14
Spring + 외장 Tomcat 으로 동작하는 프로젝트가 있었다.
초반에 로컬에서 인텔리제이로 테스트할때는 속도가 꽤 좋았다. (springboot 내장 tomcat에 비하면 떨어지지만)
간단한 테스트를 하려고 하는데 톰캣 재기동도 아니고
빌드하고 클래스파일 갱신하는데 진짜 5분 이상 걸리는 것이다.
이때까지는 원인을 몰랐다.
내가 설계한 프로젝트가 아니라서 설정을 잘못구성해서 느리나 했다.
한가지 의문점은 초반에는 이정도로 느리지 않았다는 것이다. (빌드+톰캣 배포+실행 까지 2분 내 걸리긴 했다만...)
하루종일 클래스를 갱신하거나 재배포 하니까
인텔리제이 자체가 무지막지하게 딜레이가 걸리기 시작했고 더 이상 로컬에서 개발 할 수 없는 상태에 빠졌다.
배포파일을 톰캣에 올리기만 하는데 왜 이렇게 느릴까란 생각에
Tomcat Catalina log 를 열어보니 이상한 경로가 중복적으로 보이면서 여유공간이 부족해 캐시크기를 늘리라는 것이었다.
그래서 배포된 artifacts 폴더를 한번 열어봤다.
그리고 나는 경악했다.

배포파일이 classes 폴더 하위로 계속 쌓여있는 것이 아닌가...
수많은 배포판이 중복적으로 쌓여서 동작하고 있었고 무한 반복이었다.
classes/
└─ artifacts/
└─ Project_war_exploded/
└─ WEB-INF/
└─ classes/
└─ artifacts/
└─ ... 무한 순환 ...
원인은 무엇이었을까?
이 프로젝트의 artifacts output directory 는 다음과 같았다.
D:\workspace\Project\classes\artifacts\Project_war_exploded
인간적인 시점에서는 이게 뭐가 문제가 되냐 할 수 있는 부분인데...
디렉토리 경로 가운데 있는 classes 경로에 아티팩트를 생성했기 때문에 문제를 일으킨건데
프로젝트 빌드가 되면 ROOT/classes 경로에 컴파일된 클래스들을 생성해 놓고
아티팩트 output directory/WEB-INF/classes 에 복사한다.
근데 그 아티팩트가 classes 경로에 생성되었으니 최초 생성시에는 문제가 되지 않으나
다음번 빌드할때 이것이 복사되어 아티팩트내에 아티팩트가 또 생성이 된 상태가 되고
이것이 반복되면 그 아래로 계속 복사가 되게 된다.
D:\workspace\Project\classes\artifacts\Project_war_exploded/WEB-INF/classes/artifacts/Project_war_exploded/...
결국 이것이 쌓이고 쌓이다 보면 점차 배포 파일 자체가 커져 아티팩트를 생성하는데 오래 걸리게 되고
톰캣이 힘들어지게 된다.
(파일 사이즈 봤더니 2기가가 넘었음 ^^;;)
(왜 저렇게 설정을 잡아놨나 의문^^;;)
그래서 아티팩트 생성위치를 바꿔주고 다시 빌드해서 해결 하였다.
D:\workspace\Project\output\artifacts\Project_war_exploded
이후로 프로젝트 동작하는데 부하가 걸리거나 버벅이는 증상은 완전 해소 되었다.
'Tools > IntelliJ' 카테고리의 다른 글
| [intellij] git push error 해결. (The requested URL returned error) (0) | 2025.01.14 |
|---|---|
| [IntelliJ] build 할때 test 제외하기 (compileTestJava 등) (0) | 2024.10.10 |
| [IntelliJ] Github, Third-party application access policy 설정하는 법 (0) | 2024.06.18 |
| [IntelliJ] java 파일 cannot find symbol 해결하기. (0) | 2024.04.03 |
| [IntelliJ] VM options 최적 설정. (feat.내가쓰는) ver.2 (0) | 2024.03.05 |