4

gmaven を介して実行される groovy スクリプトにいくつかの引数を渡す必要があります。次のようにコマンドラインでスクリプトを直接実行すると、問題なく実行できます。

printArgs.groovy...

for (a in this.args) {
  println("Argument: " + a)
}

指図...

$groovy printArgs.groovy fe fi fo fum 

出力...

Argument: fee
Argument: fi
Argument: fo
Argument: fum

mvn groovy:execute を使用しても、これらの引数をプラグイン経由で渡す方法がわかりません。理想的には、プラグイン構成でいくつかのデフォルトのパラメーターを設定したいのですが、コマンドを実行するときにそれらをオーバーライドできるようにします。可能であれば、それらを名前付き引数としても渡すことができるとよいでしょう。

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <source>${pom.basedir}/src/main/resources/printArgs.groovy</source>
    </configuration>
</plugin>

プラグインのドキュメントは少し不足しています (また、古くなっています)。「プロパティ」オプションのパラメーターがあるようですが、これがこの目的に使用されるとは思いません (または、使用されている場合は機能しません!)。

乾杯 :)

4

1 に答える 1

7

わかりました、参考のために自分の質問に答えることができます...

引数のリストを渡すのではなく、次のように非常に簡単にプロジェクトのプロパティを参照することができます。

def someProp = project.properties['someProp']

これを行う際に、pom内のタグで定義された任意のプロパティを参照できます。さらに、Groovyスクリプトと同じ構成タグでプロパティを定義できます。

Gmavenプラグインの設定...

<configuration>
    <properties>
        <name>world</name>
    </properties>
    <source>${pom.basedir}/src/main/resources/bootstrap/helloWorld.groovy</source>
</configuration>

HelloWorld.groovy..。

println("Hello $project.properties.name!")
// this also works
// println("Hello $project.properties['name']!")
于 2011-07-03T20:26:29.367 に答える