Maven clean 사용시 target/classes 폴더에서 특정 폴더를 제외하고 삭제하기
Submitted by soyon.lim on 금, 03/26/2010 - 11:09
mvn clean 명령어를 실행하면 Maven에서 제공하는 CleanMojo라는 객체를 통해 해당 명령어가 실행됩니다. 따라서 CleanMojo라는 클래스의 속성 'excludeDefaultDirectories'을 활용하면 특정 폴더에 대한 삭제만 가능합니다.
이를 위해서 해당 프로젝트의 pom.xml 파일 내의 .... 내에 다음과 같이 maven-clean-plugin에 대한 속성을 추가합니다. 이때, excludeDefaultDirectories에 대한 속성값을 true로 부여하면 filesets에 정의된 폴더만 삭제하도록 동작하게 됩니다.
아래 예에서는 target/classes/anyframe 폴더만을 삭제하도록 정의하고 있음을 알 수 있습니다.
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target/classes/anyframe</directory>
</fileset>
</filesets>
</configuration>
</plugin>
이와 같이 정의하고 커맨드창에서 mvn clean 명령어를 실행해 보시면, 콘솔창에 다음과 같은 메시지가 나타나는 것을 확인하실 수 있습니다.
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting /Users/aromy/Devel/working/myproject2/target/classes/anyframe
(includes = [], excludes = [])
위 예제는 다음을 참고하여 작성되었습니다.
* 참고 http://maven.apache.org/plugins/maven-clean-plugin/xref/org/apache/maven... http://maven.apache.org/plugins/maven-clean-plugin/clean-mojo.html

