Developement/Java
WTP의 Dynamic Web Project 에서 소스 디렉토리 이름 변경하기
highheat
2006. 9. 29. 12:03
Dynamic Web Project 를 생성하면 지저분한 이름에 꺼림직하게 생각하는 사람들이 있다. 내 경우도 JavaSource와 WebContent 라는 돌연스러운 대문자 활용 디렉토리가 영 거슬렸다. 어떤 면에서는 다른 디렉토리와 확연히 구분을 준다는 이점이 있기는 하다.
WTP가 버전업 되면서 해결하는건가 했더니 1.0M2 에서는 본 것 같은데, 0.7 에선 이름을 바꿀 수가 없게 되어 있다. 하는 수 없이 설정 파일을 고치면 된다. Dynamic Web Project 생성후에 JavaSource 디렉토리 위에서 오른쪽 마우스를 눌러 Refactor > Rename 하거나 Alt+Shift+R 을 선택하여 이름을 바꾼다. 자바 진영의 오랜 convention은 src 이다. 이는 Java Blueprints Guidelines Project Conventions for Enterprise Applications Early Access 1에서 제시된 것이기도 하다. WebContent 역시 동일한 방법으로 web으로 변경한다. web 역시 오랜 convetion 이다.
이렇게 하면 당연히 빌드 관련 문제가 발생한다. 이제 Resource 퍼스펙티브를 열자.
.wtpmodule 라는 파일이 있을 것이다. 대략 내용이 아래와 유사할 것이다.
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId">
<wb-module deploy-name="hpetstore">
<module-type module-type-id="jst.web">
<version>2.4</version>
<property name="context-root" value="hpetstore" />
<property name="java-output-path" value="/bin/" />
</module-type>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src" />
<wb-resource deploy-path="/" source-path="/web" />
</wb-module>
</project-modules>
여기서 색칠한 두 부분을 변경된 이름으로 수정한다. 파일 시스템에 적용된 사항이 바로 적용이 되지 않아 오류가 날 수 있는데, 이 때는 코드에 공백을 넣고 저장하는 등의 편법을 적용해서 Refresh 시킬 수 있다.
이번에는 .classpath 파일을 열어 보자.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_03"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5"/>
<classpathentry output=".deployables/hpetstore/WEB-INF/classes" kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container/hpetstore"/>
<classpathentry kind="output" path="bin"/>
</classpath>
여기서도 색칠한 부분을 새 이름으로 고치면 된다. .classpath 파일을 직접 수정하는 대신에 Java 퍼스펙티브에서 Project Properties(프로젝트 선택하고 Alt+Enter) 창을 열고, Java Build Path의 Source folder 를 변경해도 된다.
WTP가 버전업 되면서 해결하는건가 했더니 1.0M2 에서는 본 것 같은데, 0.7 에선 이름을 바꿀 수가 없게 되어 있다. 하는 수 없이 설정 파일을 고치면 된다. Dynamic Web Project 생성후에 JavaSource 디렉토리 위에서 오른쪽 마우스를 눌러 Refactor > Rename 하거나 Alt+Shift+R 을 선택하여 이름을 바꾼다. 자바 진영의 오랜 convention은 src 이다. 이는 Java Blueprints Guidelines Project Conventions for Enterprise Applications Early Access 1에서 제시된 것이기도 하다. WebContent 역시 동일한 방법으로 web으로 변경한다. web 역시 오랜 convetion 이다.
이렇게 하면 당연히 빌드 관련 문제가 발생한다. 이제 Resource 퍼스펙티브를 열자.
.wtpmodule 라는 파일이 있을 것이다. 대략 내용이 아래와 유사할 것이다.
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId">
<wb-module deploy-name="hpetstore">
<module-type module-type-id="jst.web">
<version>2.4</version>
<property name="context-root" value="hpetstore" />
<property name="java-output-path" value="/bin/" />
</module-type>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src" />
<wb-resource deploy-path="/" source-path="/web" />
</wb-module>
</project-modules>
여기서 색칠한 두 부분을 변경된 이름으로 수정한다. 파일 시스템에 적용된 사항이 바로 적용이 되지 않아 오류가 날 수 있는데, 이 때는 코드에 공백을 넣고 저장하는 등의 편법을 적용해서 Refresh 시킬 수 있다.
이번에는 .classpath 파일을 열어 보자.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.5.0_03"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5"/>
<classpathentry output=".deployables/hpetstore/WEB-INF/classes" kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container/hpetstore"/>
<classpathentry kind="output" path="bin"/>
</classpath>
여기서도 색칠한 부분을 새 이름으로 고치면 된다. .classpath 파일을 직접 수정하는 대신에 Java 퍼스펙티브에서 Project Properties(프로젝트 선택하고 Alt+Enter) 창을 열고, Java Build Path의 Source folder 를 변경해도 된다.