-
[Spring] war에 test class가 포함된다?(war에서 test class 빼는 법)웹 개발/Spring Framework 2019. 5. 8. 23:14
war를 묶을 때(packaging) test class가 포함되어 컴파일 된다면?
다른 신입분의 war를 받아서 풀어볼 일이 있었는데 컴파일된 테스트 클래스가 포함되어 있었다. 어 왜? 테스트 클래스가 어떻게 포함되어 있지?
난 이제까지 war를 묶으면 자동으로 테스트 클래스가 빠지는 줄 알았다. 실 운영 서버에는 컴파일된 테스트 클래스는 필요없으니까 말이다. war를 묶을 때 테스트 클래스를 포함할 수도, 제외할 수 있다는 걸 이번에 처음 알았다.(그외에도 멀티 프로젝트 또는 다른 디렉토리를 포함하는) 이렇게 어쩌다보니 하나 배웠다. 컴파일된 테스트 클래스가 war에 포함되더라도 그 테스트 클래스를 읽을 일이 없으니 괜찮을 수도 있지만 왠지 모를 찝찝함 + 굳이 필요없는 파일 이 들어감 때문에 해결방법을 찾아보았다.
- 프로젝트 우클릭해서 properties로 들어간다.
- Deployment Assembly에서 소스탭으로 간다.
- 여기서 Deployment Assembly란?
- 리소스와 디펜던시를 유연하게 애플리케이션에 매핑시켜준다.
- 소스에 있는 리소스와 디펜던시를 배포되는 경로로 매핑
- 참고할만한 곳 : 이클립스 Deployment Assembly에 대해서
- 여기서 Deployment Assembly란?
- /src/test/java, /src/test/resources 처럼 test 디렉토리 경로가 있을 것인데, 이것을 삭제해주어야 한다.
- war가 묶일 때 Deployment Assembly 설정에 맞춰 컴파일되는 것으로 보인다.
- 그래서 실제 test의 소스 경로에 파일들이 컴파일되지 않도록 삭제해주는 것.
- 위의 방법을 수행한 뒤 war 묶고 풀어서 확인해보면 test class는 빠지고 main 루트 밑의 소스만 컴파일된 것을 확인할 수 있다.
'웹 개발 > Spring Framework' 카테고리의 다른 글
[Spring] Lombok을 이용해 Builder 패턴을 만들어보자. (1) 2020.03.21 [Spring] 페이징처리를 위해 써먹는 Paging 객체 만들기 및 활용 (0) 2019.05.18 [Spring Boot, Gradle] gradle dependency 전체 삭제하는 법(gradle build 에러 해결 방법) (0) 2019.03.08 [Spring, jQuery] Controller에서 객체(Object)로 파라미터 받기 (0) 2019.02.24 [Spring] context:component-scan 사용법 정리 (1) 2019.02.15