-
Multi Module Project일 경우, Eclipse는 최상위 부모 프로젝트의 하위에 존재하는 target과 각 모듈의 target이 실제적으로는 물리적으로 동일한 디렉토리를 가리키지만 Derived 설정은 따로 유지하려 들게 된다. 이 때 부모 프로젝트의 target 은
부모 프로젝트 Properties → Resource → Resource Filters → Add로 가서
Exclude All/ Folders / All children 세 가지에 체크하고 이름 Name matches target 을 지정한다.
이제 부모 프로젝트의 target은 아예 목록에서 안보이고, 리소스 열기에서도 안나오게 된다.
-
이 기능이 필요한 이유는 Eclipse에서
Maven Eclipse Plugin으로 프로젝트를 관리하면서
Ctrl+Shfit+R
로 리소스 열기를 할 때 target 디렉토리 아래의 파일들이 자꾸 목록에 나오기 때문이다.
Eclipse에서 target 디렉토리의 속성(Properties) → Resources → Attribute에서 Derived로 지정하면 리소스 열기시 해당 디렉토리 이하의 파일은 목록에서 제외된다.
문제는, mvn clean
으로 target이 삭제되었다 재생성될 경우, 매번 다시 Derived로 설정을 해줘야한다는 점. 그래서 target 아래의 파일과 디렉토리만 삭제하고 target 자체는 삭제하지 않도록 설정 필요.
<build>
<plugins>
...
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target</directory>
<includes>
<include>**/*</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
...
</plugins>
</build>