Запустить ANT, не спрашивая пользователя о вводе? - PullRequest
1 голос
/ 24 января 2011

У меня есть скрипт ant с несколькими input целями, для которых установлены значения по умолчанию. Как я могу выполнить ant из командной строки или оболочки, чтобы он просто принимал значения по умолчанию, а не подсказывал?

Обновление Ух ты, я думал, что это будет быстро. Другой способ задать вопрос: можно ли указать свойства при вызове ANT вместо input prompts?

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Решение состоит в том, чтобы указать свойство, используя -Dpropertyname=propertydefaultvalue при вызове ANT.

3 голосов
/ 25 января 2011

Вот пара предложений, я уверен, что есть и другие альтернативы.

Самый простой вариант - просто взять данные из /dev/null:

ant < /dev/null

(Я думаю, что в Windows вы можете использовать NUL, чтобы сделать то же самое.) Это приведет к использованию значений по умолчанию.

Но, возможно, более полезный подход - предоставить файл свойств, который устанавливает значения, которые вы хотите для каждого из запрашиваемых входов, используя inputhandler . Следующее будет читать входные значения из файла properties.txt.

export ANT_OPTS=-Dant.input.properties=properties.txt
ant -inputhandler org.apache.tools.ant.input.PropertyFileInputHandler

Каждая запись в файле свойств состоит из строки, подобной

prompt_string=value

Вы добавляете свойство для каждой подсказки ввода. Если разные вводы используют одно и то же приглашение, это может быть сложно или просто не работает.

Также есть другие обработчики ввода .

Другая возможность (как вы упоминаете) - установить каждое из свойств, запрашиваемых в командной строке Ant, с помощью -Dprop.name=value. Тогда Ant будет использовать эти значения и не будет пытаться подсказать. В этом случае вы увидите такие вещи в журнале:

[input] skipping input as property prompt.one has already been set.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...