maven-assembly-plugin 플러그인은 프로젝트를 특정 파일로 묶을 때 사용할 수 있습니다.

이 플러그인은 다음의 7개의 goal을 제공합니다.
assembly
attached
directory
directory-inline
single
directory-single
unpack

가장 간단하게 이 플러그인을 사용하는 방법은 미리 정의되어 있는 타입으로 패키징을 하는 것입니다. 제가 참조하는 문서가 작성되는 시점에서 다음과 4가지 타입으로 묶을 수 있습니다.

  • bin : 프로젝트 base 폴더 위치한 README*, LICENSE*, NOTICE* 파일들을 묶어줍니다.
  • src : 프로젝트의 src 폴더에 위치한 모든 파일과 README*, LICENSE*, NOTICE*, pom.xml 파일들을 묶어줍니다.
  • project : 프로젝트의 target 디렉터리와 CVC>> 나 <<.svn과 같은 파일들을 제외한 모든 파일을 묶어줍니다.
  • jar-with-dependencies : Explodes all dependencies of this project and packages the exploded forms into a jar along with the project’s outputDirectory. Note that this default assembly descriptor only creates a jar, not the three zip types.

묶기를 수행하는 방법은 두 가지 입니다. 커맨드 창에서 assembly:assembly 골을 실행할 때 명령을 -DdescriptorId 인자를 주는 방법을 사용하거나…

mvn assembly:assembly -DdescriptorId=jar-with-dependencies

묶을 프로젝트의 POM의 configuration 엘리먼트를 다음과 같이 설정합니다.

<project>
  …
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
            <descriptorRef>src</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

물론 위와 같이 이미 정의되어 있는 묶기 방식을 사용해도 되지만, 이것도 역시 커스터마이징 할 수 있습니다. 그 방법은.. 밤이 깊어져가는 관계로.. 나중에 봐야겠네요.