如何将args传递给gmavengroovy:execute?

如何将args传递给gmavengroovy:execute?,groovy,parameters,maven,args,gmaven-plugin,Groovy,Parameters,Maven,Args,Gmaven Plugin,我需要将一些参数传递给通过gmaven执行的groovy脚本。如果我直接在命令行上执行脚本,我可以这样做,没有问题: printArgs.groovy for (a in this.args) { println("Argument: " + a) } println("Hello $project.properties.name!") // this also works // println("Hello $project.properties['name']!") 命令 $groo

我需要将一些参数传递给通过gmaven执行的groovy脚本。如果我直接在命令行上执行脚本,我可以这样做,没有问题:

printArgs.groovy

for (a in this.args) {
  println("Argument: " + a)
}
println("Hello $project.properties.name!")
// this also works
// println("Hello $project.properties['name']!")
命令

$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>

org.codehaus.gmaven
有点稀少(也过时了)。我看到有一个“properties”可选参数,但我不认为这是用于此目的的(或者如果是,我无法让它工作!)


干杯:)

好的,我可以回答我自己的问题以供参考

不必传入参数列表,可以非常简单地引用项目属性,如下所示:

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>

仅供参考,您应该从输出目录而不是其源位置加载资源,因此将
${pom.basedir}
替换为
${project.build.outputDirectory}