Jay*_*ark 4 parameters groovy args maven gmaven-plugin
我需要将一些args传递给通过gmaven执行的groovy脚本.如果我直接在命令行上执行脚本,我就可以做到这一点:
printArgs.groovy ...
for (a in this.args) {
println("Argument: " + a)
}
Run Code Online (Sandbox Code Playgroud)
命令...
$groovy printArgs.groovy fe fi fo fum
Run Code Online (Sandbox Code Playgroud)
输出...
Argument: fee
Argument: fi
Argument: fo
Argument: fum
Run Code Online (Sandbox Code Playgroud)
虽然使用mvn groovy:execute,我无法看到如何通过插件传递这些args.理想情况下,我想在插件配置中设置一些默认参数,但是当我执行命令时能够覆盖它们.如果可能的话,能够将它们作为named-args传递也会很好.
<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>
Run Code Online (Sandbox Code Playgroud)
插件文档有点稀缺(也过时).我看到有一个'属性'可选参数,但我不认为这是用于此目的(或者如果它是,我不能让它工作!).
干杯:)
好的,我可以回答我自己的问题以供参考......
不是传入args列表,而是可以非常简单地引用项目属性,如下所示:
def someProp = project.properties['someProp']
Run Code Online (Sandbox Code Playgroud)
在执行此操作时,您可以引用pom中标记中定义的任何属性.此外,您可以在与groovy脚本相同的配置标记中定义属性.
Gmaven插件配置...
<configuration>
<properties>
<name>world</name>
</properties>
<source>${pom.basedir}/src/main/resources/bootstrap/helloWorld.groovy</source>
</configuration>
Run Code Online (Sandbox Code Playgroud)
HelloWorld.groovy ...
println("Hello $project.properties.name!")
// this also works
// println("Hello $project.properties['name']!")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3946 次 |
最近记录: |