반응형
일반 웹어플리케이션이 아닌 그냥 보통 일반 프로그램인 경우
maven packaging 타입을 war 가 아니라 jar 로 pom.xml 파일을 설정한다.
요래 설정한후 디펜던시들을 쪽쪽 추가하면서 후로그램을 맨들다 후로그램이 다 완성되었다면~~.
내가만든 후로그램과(Executable jar), 내 후로그램에서 사용한 라이브러리들을(디펜던시) 묶어서 패키징을 해야 한다.
요런 패키징을 위해서 프로젝트 pom.xml 의 build 엘리먼트를 요래 설정해 주면된다.
설명은 주석으로 대신함.
*pom.xml
<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 로 실행하면 된다.
출처: https://stove99.tistory.com/category/maven [스토브 훌로구:티스토리]
반응형
'Programming Language > Java' 카테고리의 다른 글
[Java/maven] Lucy-XSS 교차 사이트 스크립팅 (XSS) 보안 라이브러리 (0) | 2024.05.02 |
---|---|
[Java] SessionTimeoutCookieFilter 관련 코드 (0) | 2018.12.05 |
[Java] 접속 시간과 현재 시간의 차이 구하기 (0) | 2018.12.04 |
[Java] jar 파일 실행 방법 / java -jar (0) | 2018.09.17 |
에러 / Dangling meta character '*' near index 0 (0) | 2018.09.10 |