Как изменить вывод задачи ant <input>? - PullRequest
0 голосов
/ 20 февраля 2012

Вывод задания по умолчанию выглядит следующим образом:

target name:
     [input] some message:
your input
     [next task]

Я бы хотел увидеть что-то вроде этого:

target name:
     [input] some message: your input
     [next task]

Как сделать, чтобы задание не ставилоськурсор на новую строку после сообщения?

1 Ответ

2 голосов
/ 03 марта 2012

Это можно сделать, но это немного связано.В самой задаче input нет опции для простого выполнения того, что вы хотите.

Однако в Ant 1.7 или более поздней версии вы можете управлять выводом (и вводом) задачи input, предоставляя обработчик ввода .Ant поставляется с несколькими обработчиками ввода, например, для безопасного ввода, который не отображает то, что вы вводите на экран.Вы можете, если хотите, написать свой собственный обработчик ввода и таким образом получить полный контроль над тем, как выглядит ввод и вывод.

Чтобы написать обработчик ввода, вы должны написать класс, который реализует InputHandlerинтерфейс.Я рекомендую вам скачать исходный код Ant, взглянуть на DefaultInputHandler и создать свою собственную версию, изменив ее в соответствии с вашими потребностями.В исходном коде Ant v1.8.3 приглашение и ввод реализованы следующим образом:

r = new BufferedReader(new InputStreamReader(getInputStream()));
do {
    System.err.println(prompt);
    System.err.flush();
    try {
        String input = r.readLine();
        request.setInput(input);
    } catch (IOException e) {
        throw new BuildException("Failed to read input from"
                                 + " Console.", e);
    }
} while (!request.isInputValid());

Я не пробовал, но замена println на print кажется хорошей идеей..

Когда вы закончите, вы можете указать задачу Ant input на ваш скомпилированный обработчик ввода, используя параметры classname и (например) classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...