繁体   English   中英

你如何将 args 传递给 gmaven groovy:execute?

[英]How do you pass args to gmaven groovy:execute?

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

printArgs.groovy...

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

命令...

$groovy printArgs.groovy fe fi fo fum 

output...

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>

插件文档有点稀缺(而且也过时了)。 我看到有一个“属性”可选参数,但我不认为这是用于此目的(或者如果是,我无法让它工作。)。

干杯:)

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

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

def someProp = project.properties['someProp']

在执行此操作时,您可以引用 pom.xml 中标记中定义的任何属性。 此外,您可以在与 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']!")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM