Mavenで実行可能JARを作成する

Mavenで実行可能JARを作成する

目的

Javaのコンソールアプリを作成したので、実行可能なJARファイルを作成し、依存するライブラリ類もすべてひとつにまとめたい。

概要

maven-assembly-plugin を使用する。
現在(2018/01)の最新バージョンは 3.1.0

Maven Repository: org.apache.maven.plugins » maven-assembly-plugin

今回はEclipseで操作する手順についてまとめる。

手順

(1) Mavenプロジェクトを作成
(2) コンソールアプリを実装
(3) pom.xmlに <build> タグを追加し、maven-assembly-plugin の設定を定義する

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>smuplus</groupId>
 <artifactId>cli-test</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <dependencies>
  <!-- https://mvnrepository.com/artifact/info.picocli/picocli -->
  <dependency>
   <groupId>info.picocli</groupId>
   <artifactId>picocli</artifactId>
   <version>2.2.1</version>
  </dependency>
 </dependencies>
 <build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
     <finalName>app</finalName>
     <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
     </descriptorRefs>
     <archive>
      <manifest>
       <mainClass>sample.cli.CliTest</mainClass>
      </manifest>
     </archive>
    </configuration>
    <executions>
     <execution>
      <id>make-assembly</id>
      <phase>package</phase>
      <goals>
       <goal>single</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
  </plugins>
 </build>
</project>

dependency にある picocli はコマンドライン引数をパースするためのライブラリ。
(今回の内容とは関係なし)

>> 参考: picocli - a mighty tiny command line interface

(4) プロジェクトを右クリック -> 実行 -> Maven install

target フォルダに app-jar-with-dependencies.jar というファイルが生成される。

実行方法

> java -jar target/app-jar-with-dependencies.jar

参考

コメント

このブログの人気の投稿

Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER is marked for publish/export but is not exported on the project classpath

蛍光灯フリッカー現象 (ちらつき) の対策