Я нашел это проблематично с нормальными аргументами командной строки используя Gradle, а также - Даже в той степени, Пример 1 работ и Пример 2 преминет добавить дополнительный аргумент:
runArgs
устанавливается в Основной build.gradle
Как следует:
ext {
runArgs = [ '-server=localhost', '-port=8080' ];
}
Просто добавив к командной строке появляется вызов (см. ниже)
Пример 1:
debug.doFirst(){
// ... <snip> ...
// command line arguments
//
println " debug args (a): ${args}."
runArgs.add("-memo=${project.name}:debug");
args = runArgs;
println " debug args (b): ${args}."
}
Выход правильно, показывает «-memo» добавлен параметр, но и переданное в args
были заменены переменной сценария с использованием этого подхода.
debug args (a): [-server, localhost, -port, 8080 ].
debug args (b): [-server=localhost, -port=8080, -memo=Client:debug].
Пример 2:
debug.doFirst(){
// ... <snip> ...
// command line arguments
//
println " debug args (a): ${args}."
args.add("-memo=${project.name}:debug");
println " debug args (b): ${args}."
}
Выход (? правильно) показывает, что не было add()
, за ответ: from Opal выше.
debug args (a): [-server, localhost, -port, 8080 ].
debug args (b): [-server, localhost, -port, 8080 ].
Я отправил этот пример, чтобы показать, что там может быть альтернативы принятия статус-кво, я ожидать, что jvmArgs
работать в аналогичной схеме. Я не нашел примеров для добавления дополнительных аргументов отладки (скажем). Итак, вот один.
Я также видел в нескольких местах (он-лайн и книг), такие примеры, как:
jvmArgs.add("-DAPPLICATION_LOCATION=City");
jvmArgs.add("-DSERVER_HOST=localhost");
Который, как мы теперь понимаем, не работают.
Плей-офф, который я использую для реализации, предназначен для подпроекта build.gradle
Сценарий для предоставления отсутствующих аргументов и/или параметров сценария (например, как в примере отладки). Для меня ясно, что если вы хотите это сделать, сценарий должен будет либо заменить командной строки, либо проанализировать пройденный args
, а затем смять по умолчанию какой-либо механизм.
Надеюсь, этот пример даст другим более глубокое понимание.
Это объясняет это. Можете ли вы объяснить, почему доступ только для чтения? Я новичок в Groovy, в java вы получаете ссылку на список, и вы можете изменить его, как хотите. – MaxNevermind
Это не вопрос хороших, java. См. Обновленный ответ. – Opal