백업 용도로 또는 어떤 목적이든 메이븐에서 자바소스, 웹소스, 각종 설정파일 등등 내가 원하는 파일만을 포함하는 zip 파일을 만들고 싶을 때가 있다.
maven-assembly-plugin이 그 일을 해준다.
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>.assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>.assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
이 플러그인의 한가지 귀찮은 점은 assembly descriptor 라는 파일을 만들어야한다는 것인데 이쯤에서 또다시 Ant가 그리워지는 순간이기도 하다.
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<id>src-backup</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory></outputDirectory>
<useDefaultExcludes>true</useDefaultExcludes>
<excludes>
<exclude>target/**</exclude>
<exclude>bin/**</exclude>
<exclude>build/**</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
<assembly>
<id>src-backup</id>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>.</directory>
<outputDirectory></outputDirectory>
<useDefaultExcludes>true</useDefaultExcludes>
<excludes>
<exclude>target/**</exclude>
<exclude>bin/**</exclude>
<exclude>build/**</exclude>
</excludes>
</fileSet>
</fileSets>
</assembly>
mvn assembly:assembly를 실행하면 {project.build.finalName}-src-backup.zip 파일이 떨궈진다.
닪순히 파일명을 {project.build.finalName}.zip 으로 하고 싶으면 descriptor 에서 <id>를 생략하면 된다.
또는 appendAssemblyId 설정을 false로 하거나.
* assembly:assembly와 assembly:single의 차이
- assembly:assembly : package phase가 먼저 실행된다. 이 goal은 phase에 바인딩하면 안된다.(못한다?)
- assembly:single : assembly 작업만 실행된다. 이 goal은 phase에 바인딩 가능하다.
'Build&Deploy > Maven' 카테고리의 다른 글
Maven : test, deploy phase 건너뛰기 (0) | 2008.10.01 |
---|---|
Maven : profile 마다 소스 디렉토리 달리하기 (0) | 2008.10.01 |
Maven : StatSCM 플러그인으로 CVS저장소 통계 리포트 생성시 IOException (0) | 2008.10.01 |
Maven : wagon으로 리모트에 파일 전송시 CVS폴더 포함 (0) | 2008.10.01 |
Maven : wagon-ssh를 통해 site deploy시 unzip 에러 (0) | 2008.09.30 |