使い方
Javaプログラムをコマンドラインから実行するには、依存するライブラリを全てまとめて実行可能なjarファイル(Executable jar)を作るのが便利です。
実行可能なjarファイルはMaven Assembly Pluginを使って作成できます。
まずpom.xmlに以下のような設定を加えます。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
<!-- エントリポイントとなるクラス名 -->
com.example.Example
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
その上で次のコマンドを実行します。
$ mvn clean package
サンプルプログラム
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>example</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
com.example.Example
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
src/main/java/com/example/Example.java
package com.example;
public class Example {
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg);
}
}
}
サンプルプログラムの実行
次のコマンドを実行します。
$ mvn clean package
すると、targetディレクトリの下に実行可能なjarが生成されます。
実行可能なjarは java -jar
コマンドで実行できます。実行可能なjarファイルの中には依存ライブラリも全て含まれているためクラスパスを設定する必要はありません。
$ java -jar target/example-1.0.0-SNAPSHOT-jar-with-dependencies.jar a b c
a
b
c