Util & Etc & Build Tool/Maven
[Maven] Maven 을 이용하여 Executable Jar 만들기.
무대포개발자
2016. 11. 14. 16:11
http://stove99.tistory.com/79 참고
요약 :
1. 아래 내용을 pom.xml 에 추가
2. Run as -> Maven install 하면 dist 위치에 myprogram.jar 생김.
주의사항
<
mainClass
>oasyss.Main</
mainClass
>
아래에 위와 같이 설정하면 package.class명으로 실행이 안됨.
예를 들면, Java -classpath example.jar ch03.HelloWorld 하면 메인 클래스 찾을 수 없다고 에러 나옴.
그러니 저 oasyss.Main 을 주석처리하고 해야함.
<
properties
>
<
deploy.target.dir
>dist</
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
>