2012-03-09 10 views
3

Mavenプラグインに渡されたパラメータのクォートとエスケープはどのように機能しますか?私はMavenのExecのプラグインによって実行されるアプリケーションに引数として複数のファイル名を渡したい例えばMavenプラグインの引用符とエスケープ

mvnDebug exec:java -Dexec.mainClass="Main" -Dexec.args="/path/to/file1 /path/to/file2"

しかし、どのようなパスにスペースがある場合は? ":"
-Dexec.args="\"/path/to/a file\" /path/to/file2"

をし、":

私は\使用してみました
-Dexec.args="""/path/to/a file"" /path/to/file2"

どちらも動作します:-(どちら-D前に最初の引用符を移動し

Maven Execプラグインのソースコードは役に立ちません。どこかからString []を受け取りますが、どこに?

POMファイルを変更せずに、コマンドラインからこれを動作させる必要があることに注意してください。

答えて

1

一重引用符(')を試してみることもできますが、どちらでも問題はありません。

問題は、複数のargument要素をPOM(つまり、プラグインのソースにある配列)に含めることができますが、コマンド行からは1つのプロパティしか持たないということです。

オプション:

  • あなたができるプラグインをパッチおよび/または

  • は、このプロジェクト/モジュールに依存モジュールを作成します(多分exec.args.0, exec.args.1, exec.args.2, ...を)いくつかの引数をサポートするための機能要求を開き、 POMを変更してください

  • AntまたはBASHスクリプトを使用してください。私はしばしば、Mavenで簡単にサポートされていない便利なコマンドを収集するために、このアプローチを使用します。この場合、mvn dependency:build-classpath -Dmdep.outputFile=...からクラスパスが得られます。

関連する問題