我试图更新一个用groovy编写的maven插件,以便在可用的情况下使用外部JVM,否则,只需使用默认设置。我的代码更改看起来像这样:
def jvmExecutable = null;
if (someCondtion = true) {
jvmExecutable = "something"
}
def ant = new AntBuilder()
ant.java(fork: "${fork}", jvm: "${jvmExecutable}"....)
如果jvmExecutable为null,Groovy中是否有一种方法可以省略jvm: "${jvmExecutable}"
指令?如果指定jvm
,Groovy Ant任务需要一个可执行文件,但如果我没有指定某些内容,我希望它能使用它的默认值。
基本上,如果jvmExecutable != null
执行此操作
ant.java(fork: "${fork}", jvm: "${jvmExecutable}", ....)
或jvmExecutable == null
执行此操作
ant.java(fork: "${fork}", ....)
谢谢!
答案 0 :(得分:1)
将命名参数传递给方法时,实际上是在构建hashmap
所以这段代码
ant.echo(message:"hello", level:"error")
等于这个
ant.echo( [message:"hello", level:"error"] )
最后,您希望仅在地图中保留有效值。像这样:
ant.echo( [message:"hello", level:null].findAll{it.value!=null} )