Ответ 1
Нет.
Вы не можете передавать аргументы, которые будут использоваться внутри файла сборки таким образом. ant bootstrap arg1 arg2 arg3
будет разрешен, поскольку вы пытаетесь вызвать следующие цели bootstrap
, arg1
, arg2
, arg3
- и, очевидно, существует только цель bootstrap
.
Если вы хотите передать аргументы, которые будут использоваться в файле сборки, вам необходимо использовать формат -DpropertyName=value
. Например:
ant bootstrap -Darg1=value1 -Darg2=value2 -Darg3=value3
Для других способов вы можете написать embed script в файле сборки (например, beanshell или javascript с ant script поддержкой libs) для обработки аргументов вначале. Например, вы можете передать аргументы следующим образом:
ant bootstrap -Dargs=value1,value2,value3,...
и теперь у вас есть свойство с именем args
со значением "value1, value2, value3,..." (для... Я имею в виду, что пользователь может ввести более трех значений). Вы можете использовать beanshell для разделения args
на arg1
, arg2
и arg3
на ,
, а также выполнить некоторую проверку...
<script language="beanshell" classpathref="classpath-that-includes-the-beanshell-lib">
String[] args = project.getProperty("args").split(",");
project.setUserProperty("arg1", args[0].trim());
project.setUserProperty("arg2", args[1].trim());
project.setUserProperty("arg3", args[2].trim());
</script>