2016-03-30 9 views
0

を追加する方法を私はfollowingly Maven Embedderを使用しています:Mavenのエンベッダ:コマンドオプション

MavenCli cli = new MavenCli(); 
int result = cli.doMain(new String[] { "process-resources" }, "tmp/projectdir", System.out, System.err); 

これは動作し、ディレクトリ内のコマンドラインコマンドに

mvn process-resources 

を実行するのと同じです

tmp/projectdir 

しかし、私はMavenへのオプションを指定する必要があるので、Maven Embedderはco mmand行コマンド

mvn -Dstage=local process-resources 

どうすればいいですか?

+0

なぜあなたは自分自身をMavenのMavenの埋め込みを使用していませんか? – khmarbaise

+0

私はアプリケーションの起動時に外部設定ファイルを処理するためにMaven Embedderを使用しています。 – simon

+1

設定ファイルにビルドツールを使用しますか?正直言って...奇妙に聞こえる... – khmarbaise

答えて

0

-Dstage=localはちょうどdoMain()の引数パラメータとして、それを与えることによって設定されたシステム変数です:

MavenCli cli = new MavenCli(); 
int result = cli.doMain(new String[] { "-Dstage=local", "process-resources" }, "tmp/projectdir", System.out, System.err); 
+0

ありがとうございます。 :)私はそれを自分で考えていたはずですが、問題はそのようには考えていませんでした(問題は「コマンドラインオプションを追加するのではなく、システム変数を追加する」)。それは私の問題を解決するために働いていますが、他の人にとっては興味深いかもしれない質問のタイトルで直接提案された質問には答えません。私はあなたを支持したが、明らかに他の人があなたを落胆させた。 – simon

+0

@simon実際には、私はdownvoteの理由を知るかもしれません。明示的にシステムプロパティを設定する必要はなく、それはそれ自身で行います。あなたが通常どおりに議論を伝えるだけです。 – Tunaki

+0

ありがとう、それは動作します。どうやら、文字列配列はコマンドライン上にあるようにmavenコマンドに渡されているようです。 – simon