Использование Groovy AntBuilder () с необязательным параметром JVM - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь обновить плагин maven, написанный на groovy, чтобы использовать внешнюю JVM, если она доступна, в противном случае просто используйте значение по умолчанию.Мои изменения кода выглядят примерно так:

def jvmExecutable = null;
if (someCondtion = true) {
 jvmExecutable = "something"
}

def ant = new AntBuilder()
ant.java(fork: "${fork}", jvm: "${jvmExecutable}"....)

Есть ли способ в Groovy исключить директиву jvm: "${jvmExecutable}", если jvmExecutable равен null?Задача Groovy Ant ожидает там исполняемый файл, если указано jvm, но я бы хотел использовать его по умолчанию, если я что-то не указываю.

По существу, если jvmExecutable != null делает это

ant.java(fork: "${fork}", jvm: "${jvmExecutable}", ....)

или, если jvmExecutable == null сделать это

ant.java(fork: "${fork}", ....)

Спасибо!

1 Ответ

0 голосов
/ 13 июня 2018

когда вы передаете именованные параметры в метод, вы на самом деле создаете hashmap

, поэтому этот код

ant.echo(message:"hello", level:"error")

равен этому

ant.echo( [message:"hello", level:"error"] )

наконец вы хотитедержите в карте только действительные значения.как это:

ant.echo( [message:"hello", level:null].findAll{it.value!=null} )
...