Exec Maven Pluginでコマンドラインパラメータを指定する。

Mavenを使ったJavaプロジェクトで、コマンドラインツールを作っています。

作ろうとしているツールは、gitやmvnのように、コマンドラインパラメータを受けて、処理を色々と振り分けられるような形にしたいと思っています。

コマンドラインパラメータを受ける

実際に使うときはこんな感じです。

cli subcommand --opt=arg

Javaで書くので、実際には、jarを実行するような形です。

java -jar cli.jar subcommand --opt=arg

こうすると、mainメソッドのargsに、コマンドラインパラメータが渡ります。

public static void main(String[] args) {
	System.exit(0);
}

Exec Maven Pluginで実行する

実際に開発しているときは、いちいちjarに固めてから実行するのは面倒なので、Exec Maven Pluginを使うと少し楽です。

Exec Maven Plugin

次のように、exec:javaゴールを指定することで、ビルドしてから実行してくれます。

mvn exec:java

pom.xmlの設定はこんな感じになります。

<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>exec-maven-plugin</artifactId>
	<version>1.2.1</version>
	<executions>
		<execution>
			<goals>
				<goal>java</goal>
			</goals>
		</execution>
	</executions>
	<configuration>
		<mainClass>in.katty.cli.Command</mainClass>
	</configuration>
</plugin>

Exec Maven Pluginでコマンドラインパラメータを指定する

本題のコマンドラインパラメータの指定です。

java -jar cli.jar subcommand --opt=arg

これを、Exec Maven Pluginで実行するときは、次のようにパラメータを指定します。

mvn exec:java -Dexec.args="subcommand --opt=arg"

さらに詳しい使い方は公式サイトのUsageを見てください。

About katty0324

Leave a Reply

Scroll To Top