Maven 애플리케이션 패키징하기
Maven 애플리케이션 패키징하기
Kotlin 애플리케이션을 Maven으로 패키징할 때는 표준 JAR 파일로 만들거나, 모든 의존성을 포함한 자체 포함(self-contained, 일명 fat) JAR 파일로 만들 수 있어요. 애플리케이션을 패키징하면 배포할 수 있고, Java Runtime Environment(JRE)가 있는 어느 머신에서든 실행할 수 있게 돼요.
본문
JAR 파일 만들기
모듈의 코드만 담긴 작은 JAR 파일을 만들려면 Maven pom.xml 파일의 <build><plugins> 아래에 다음 내용을 포함해요. 여기서 main.class는 프로퍼티로 정의되며 주 Kotlin 또는 Java 클래스를 가리켜요:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>${main.class}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
자체 포함 JAR 파일 만들기
모듈의 코드와 그 의존성을 모두 담은 자체 포함 JAR 파일을 만들려면 Maven pom.xml 파일의 <build><plugins> 아래에 다음 내용을 포함해요. 여기서 main.class는 프로퍼티로 정의되며 주 Kotlin 또는 Java 클래스를 가리켜요:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.8.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals> <goal>single</goal> </goals>
<configuration>
<archive>
<manifest>
<mainClass>${main.class}</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
이 자체 포함 JAR 파일은 JRE에 직접 전달해서 애플리케이션을 실행할 수 있어요:
java -jar target/mymodule-0.0.1-SNAPSHOT-jar-with-dependencies.jar
더 알아보기
Kotlin 컴파일러 설정(Maven), 빌드 도구 API 문서도 살펴보세요.