구동에 필요한 의존성 라이브러리를 모두 (외부폴더로)포함해서 jar 를 생성하도록 해본다.
pom.xml 에서 jar 플러그인을 수정하고 dependency 플러그인을 추가하고 설정한다.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>printTime.GetTime</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>libs/</classpathPrefix> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.5.1</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeScope>runtime</includeScope> <outputDirectory>${project.build.directory}/libs/</outputDirectory> </configuration> </execution> </executions> </plugin>
libs 폴더를 추가하고 해당 폴더에 라이브러리들을 넣어 주도록 설정하였다.
jar 플러그인은 클래스패스 선언을 관리하여 MANIFEST.MF 에 넣어줄것이고, dependency 플러그인은 폴더를 생성하고 라이브러리들을 복사하여 줄것이다.
Maven build goals = package 를 진행해 보자.
생성된 jar 의 MANIFEST.MF 를 살펴보면 아래와 같다.
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: macdev
Class-Path: libs/log4j-api-2.11.1.jar libs/log4j-core-2.11.1.jar
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_77
Main-Class: printTime.GetTime
Class-Path 가 추가된것을 확인할 수 있다.
jar가 생성된 폴더에 libs 폴더도 생성되었고 libs 폴더 내부에 로그 라이브러리들도 들어 있다.
별도의 classpath 를 불러 올 필요가 없어졌다. 실행해 보도록 하자.
java -jar printTime-1.0.0.jar
'Gradle' 카테고리의 다른 글
Maven 으로 실행가능한 jar 를 만들기 4 (0) | 2019.01.10 |
---|---|
Maven 으로 실행가능한 jar 를 만들기 2 (0) | 2019.01.10 |
Maven 으로 실행가능한 jar 를 만들기 1 (0) | 2019.01.09 |
[gradle] 그래들 설정으로 속도 높이기, 전역변수 별도 파일에 설정 하기 (0) | 2014.09.29 |