maven 으로 executable jar 맨들기(maven-jar-plugin, maven-dependency-plugin 이용)
maven 2011. 10. 26. 17:55
일반 웹어플리케이션이 아닌 그냥 보통 일반 프로그램인 경우 maven packaging 타입을 war 가 아니라 jar 로 pom.xml 파일을 설정한다.
요래 설정한후 디펜던시들을 쪽쪽 추가하면서 후로그램을 맨들다 후로그램이 다 완성되었다면~~.
내가만든 후로그램과(Executable jar), 내 후로그램에서 사용한 라이브러리들을(디펜던시) 묶어서 패키징을 해야 한다.
요런 패키징을 위해서 프로젝트 pom.xml 의 build 엘리먼트를 요래 설정해 주면된다.
설명은 주석으로 대신함.
요래 해준다음 mvn clean package 를 뽓 실행시켜주면, deploy.target.dir 로 설정된 c:\myproject 폴더에 myprogram.jar 파일이 생성되고 c:\myproject\lib 폴더에 디펜던시들이 쪽 복사가 된다.
※ 요 jar 파일을 실행할려면
일반 자바후로그램인 경우 java -jar myprogram.jar 로
Swing이나 SWT 같은 GUI 후로그램인 경우 javaw -jar myprogram.jar 로 실행하면 된다.
요래 설정한후 디펜던시들을 쪽쪽 추가하면서 후로그램을 맨들다 후로그램이 다 완성되었다면~~.
내가만든 후로그램과(Executable jar), 내 후로그램에서 사용한 라이브러리들을(디펜던시) 묶어서 패키징을 해야 한다.
요런 패키징을 위해서 프로젝트 pom.xml 의 build 엘리먼트를 요래 설정해 주면된다.
설명은 주석으로 대신함.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | < properties > < deploy.target.dir >c:/myproject</ deploy.target.dir > < lib.dir >lib</ lib.dir > < jar.name >myprogram</ jar.name > </ properties > < build > < plugins > < plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-jar-plugin</ artifactId > < version >2.3.2</ version > < configuration > < finalName >${jar.name}</ finalName > <!-- jar 파일이 생성될 폴더 --> < outputDirectory >${deploy.target.dir}</ outputDirectory > < archive > < manifest > <!-- public static void main() 함수가 있는 클래스 지정 --> < mainClass >oasyss.Main</ mainClass > <!-- jar 파일 META-INF/MANIFEST.MF 에 클래스패스 정보 추가 --> < addClasspath >true</ addClasspath > <!-- 클래스패스에 추가시 prefix 설정 ex) log4j-1.2.16.jar -> lib/log4j-1.2.16.jar 로 추가됨 --> < classpathPrefix >${lib.dir}/</ classpathPrefix > </ manifest > </ archive > </ configuration > </ plugin > <!-- package 실행할때 프로젝트 디펜던시들을 특정폴더로 복사해주게 설정 --> < plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-dependency-plugin</ artifactId > < version >2.3</ version > < executions > < execution > < id >copy-dependencies</ id > < phase >package</ phase > < goals > < goal >copy-dependencies</ goal > </ goals > </ execution > </ executions > < configuration > < outputDirectory >${deploy.target.dir}/${lib.dir}</ outputDirectory > < overWriteIfNewer >true</ overWriteIfNewer > </ configuration > </ plugin > </ plugins > </ build > |
요래 해준다음 mvn clean package 를 뽓 실행시켜주면, deploy.target.dir 로 설정된 c:\myproject 폴더에 myprogram.jar 파일이 생성되고 c:\myproject\lib 폴더에 디펜던시들이 쪽 복사가 된다.
※ 요 jar 파일을 실행할려면
일반 자바후로그램인 경우 java -jar myprogram.jar 로
Swing이나 SWT 같은 GUI 후로그램인 경우 javaw -jar myprogram.jar 로 실행하면 된다.
2011/10/25 - [mybatis] - mybatis Oracle Procedure 호출하기
2011/10/24 - [쓸만한지식] - 모바일 페이지 작성시 가로,세로 모드에 따라 다른 css 파일 적용시키기
2011/10/24 - [쓸만한지식] - 네이버에서 제공해주는 PPT, DOC, HWP 서식(Template) 받자~
2011/10/23 - [maven] - Sonatype Nexus #2 : 설정 및 maven 과 연결하기
2011/10/23 - [maven] - Sonatype Nexus #1 : 톰캣에 설치하기
2011/10/18 - [mybatis] - mybatis 동적쿼리 조건문에 isEmpty, isNotEmpty 를 써보자.
2011/10/24 - [쓸만한지식] - 모바일 페이지 작성시 가로,세로 모드에 따라 다른 css 파일 적용시키기
2011/10/24 - [쓸만한지식] - 네이버에서 제공해주는 PPT, DOC, HWP 서식(Template) 받자~
2011/10/23 - [maven] - Sonatype Nexus #2 : 설정 및 maven 과 연결하기
2011/10/23 - [maven] - Sonatype Nexus #1 : 톰캣에 설치하기
2011/10/18 - [mybatis] - mybatis 동적쿼리 조건문에 isEmpty, isNotEmpty 를 써보자.
'maven' 카테고리의 다른 글
Sonatype Nexus #3 : 관리자 비밀번호를 까묵었을때 -_- 리셋하기 (0) | 2012.05.16 |
---|---|
Sonatype Nexus #2 : 설정 및 maven 과 연결하기 (4) | 2011.10.23 |
Sonatype Nexus #1 : 톰캣에 설치하기 (0) | 2011.10.23 |
이클립스 상에서 maven 을 이용해 원격서버로 배포하기 (3) | 2011.10.14 |
maven package goal 로 war나 jar 파일 생성시 생성되는 파일명 설정하기 (0) | 2011.10.13 |