Maven 을 이용하여 실행 가능한 Jar 파일을 만들어 보자.


게다가 Maven 에서 제공하는 Library 가 아닌 Local Library 를 추가 하는 방법 또한 메모하자.


1. 외부 라이브러리 추가하는 방법


우선, Local Library를 pom.xml 에 추가 하는 방법은 아래 코드를 넣어보자.


<repositories>

<repository>

<id>localrepository</id>

<url>file://${basedir}/lib</url>

</repository>

</repositories>


위의 url 태그 부분에 외부 Library 파일들이 있어야 되고 Dependency 로 추가하기 위해선 파일이 있는 경로를 groupId/artifactId/version/artifactId-version.jar 과 같이 해야 된다.


경로에 파일을 생성 한 뒤, Dependency 관련 정보를 아래와 같이 pom.xml 에 추가 한다. 

(직접 만든 rabbitmq library에 대한 예제. 경로는 "프로젝트 루트경로\lib\rabbitmq\rmq_queue\1.0.0\rmq_queue-1.0.0.jar" 이다.)


<dependencies>

......

<dependency>

<groupId>rabbitmq</groupId>

<artifactId>rmq_queue</artifactId>

<version>1.0.0</version>

</dependency>

......

</dependencies>



2. 실행 가능한 Jar 파일 만들기


실행 가능한 Jar 파일을 만들기 위해선 pom.xml 파일에 Build 태그를 넣어 Plugin들을 추가 한다.


 <build>

<plugins>

......

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.1</version>

<executions>

<execution>

<id>default-compile</id>

<phase>compile</phase>

<goals>

<goal>compile</goal>

</goals>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</execution>

<execution>

<id>default-testCompile</id>

<phase>test-compile</phase>

<goals>

<goal>testCompile</goal>

</goals>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</execution>

</executions>

<configuration>

<encoding>UTF-8</encoding>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<version>2.4.3</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<!-- XML schema namespaces 오류 수정을 위해 필요함 -->

<transformers>

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

<resource>META-INF/spring.handlers</resource>

</transformer>

<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">

<resource>META-INF/spring.schemas</resource>

</transformer>

<!-- 실행 가능한 jar 파일을 만들기 위해서는 main method가 존재하는 클래스를 명시해 주어야 함 -->

<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

<manifestEntries>

<Main-Class>com.metadataCollector.metadataCollectorMain</Main-Class>

</manifestEntries>

</transformer>

    </transformers>

<!-- Dependency Reduced Pom 파일 미생성 -->

    <createDependencyReducedPom>false</createDependencyReducedPom>

</configuration>

</execution>

</executions>

</plugin>

......

</plugins>

</build>


추가 할때 Main-Class 이름을 넣어 준다. 


위와 같이 모든 준비 작업을 완료하고 mvn package 명령어로 실행가능한 jar 파일을 생성한다.


간단하게 작성했지만... 부족한 부분이 있으면 수정해야지.... 

반응형

+ Recent posts