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の設定はこんな感じになります。
org.codehaus.mojo
exec-maven-plugin
1.2.1
java
in.katty.cli.Command
Exec Maven Pluginでコマンドラインパラメータを指定する
本題のコマンドラインパラメータの指定です。
java -jar cli.jar subcommand --opt=arg
これを、Exec Maven Pluginで実行するときは、次のようにパラメータを指定します。
mvn exec:java -Dexec.args="subcommand --opt=arg"
さらに詳しい使い方は公式サイトのUsageを見てください。
コメント