2017년 11월 2일 목요일

Maven 빌드 시 dependencies 모두 포함하기

참고 사이트
https://maven.apache.org/plugins/maven-assembly-plugin/usage.html
https://www.lesstif.com/display/JAVA/maven+assembly+plugin

맵리듀스 프로그래밍 시 Java, Hadoop 기본 라이브러리 말고 다른 라이브러리를 쓸 때 마다 classpath에 추가해 줘야 되서 귀찮음을 느끼고 있었는데, maven에서 dependencies를 모두 모아서 jar를 만들어 주는 기능이 있다는게 생각났다.

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      [...]
</project>

위에 처럼 pom.xml에 추가하고 maven 빌드하면 xxx-jar-with-dependencies.jar 파일이 하나 더 생긴다. 그 파일을 이용하면 별도의 classpath 입력 없이 사용 가능하다.

댓글 없음:

댓글 쓰기