메이븐 프로젝트 기반의 Dynamic Web Project 개발 시 주의 사항이 있다.
팀 동료가 겪은 오류 사항이지만 막상 나에게 닥쳤다면 분명 삽질 좀 했을 것이다. 그러하기에 정리함. ^^
메이븐 프로젝트는 기본적으로 다음과 같은 폴더 구조를 가지게 되고,
src/main/java
src/main/resources
src/test/java
src/test/resources
해당 프로젝트에 Dynamic Web Module 설정을 추가해주게 되면 Deployment Assembly 설정이 다음과 같은 화면으로 기본 셋팅이 된다.
Deployment Assembly 설정이 어떤 기능을 하는지에 대해서는 다음의 포스팅을 읽어보면 된다.
http://lng1982.tistory.com/115
위와 같은 환경에서 문제가 발생되는 상황은 이러하다.
src/main/resources 하위에 config.properties 파일이 존재하고, src/test/resources 하위에도 동일한 파일이 존재할 때 이클립스의 내장 톰켓 배포 디렉토리에는 src/test/resources의 config.properties가 존재하게 된다.
test 코드 하위에 있는 config.properties 파일이 배포 디렉토리에 배포가 되는 이유는 Deployment Assembly에 src/test/resources가 등록되어 있기 때문이다. 즉, 이클립스에서 가상 배포 디렉토리로 배포할 때 src/main/resources 디렉토리에 있는 config.properties 파일을 먼저 배포하게 될 것이고, 그 다음으로 src/test/resources 디렉토리에 있는 config.properties 파일을 배포하기 때문에 파일을 덮어 버리는 현상이 발생하는 것이다.
src/test/java도 함께 등록되어 있으니 이것도 문제가 되지 않겠냐라는 의문을 가질 수 있겠지만 다행히 같은 패키지 내에서 같은 class로 파일을 생성할 수 없으니 위와 같이 파일을 덮어 버리는 현상은 없다.
여하튼 이런 문제를 해결하기 위해서는 Deployment Assembly 설정에 들어가 src/test/java, src/test/resources 를 삭제해 주면 된다.
'개발툴' 카테고리의 다른 글
javascript 빨간 X표시 안보이게 하기 (2) | 2014.07.16 |
---|---|
Shared workspace plugin 설정 (0) | 2014.07.01 |
이클립스 Open Resource 창에서 특정 파일 및 폴더 제외 방법 (473) | 2014.06.27 |
maven 빌드 시 war 파일에 buildNumber 추가 (0) | 2014.06.26 |
third party library 사설 리포지토리 없이 dependency 추가하기 (1) | 2014.06.02 |
maven 빌드 시 tld 파일 jar에 포함시키기 (0) | 2014.05.26 |
오류 Cannot change version of project facet Dynamic Web Module to 2.5. (17) | 2014.05.21 |
[이클립스] jar 파일안에 있는 .class 파일 쉽게 찾기 (0) | 2014.05.16 |