2012-02-20 39 views
0

输出任务的样子说:如何更改蚂蚁<input>任务的输出?默认情况下

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

我希望看到这样的事情:

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

我怎样才能让,这项任务并没有把光标移动到新行消息后?

+0

的可能重复[如何改变蚂蚁的自定义任务输出?](http://stackoverflow.com/questions/9359062/how-to-change-ants-custom-task-output) – 2012-02-20 20:18:54

+0

请提出这样的问题一次,然后耐心等待回应。如果有必要,请编辑原始问题,不要第二次发帖,只会让人感到困扰 – 2012-02-20 20:19:42

+0

@ MarkO'Connor不,我认为这是一个亲戚,但这是另一个问题。这些问题可能有类似的解决方案,但可能不会。 是“本地”ant任务,解决方案可能包括对其进行配置而不对其进行源代码编辑。 – Sergey 2012-02-21 06:22:17

回答

2

它可以完成,但它有点涉及。 input任务本身没有任何选项可轻松完成您想要的任务。

但是,在Ant 1.7或更高版本中,您可以通过提供输入处理程序来控制input任务的输出(和输入)。 Ant附带一些输入处理程序,例如一个用于安全输入的输入处理程序,它不回显您输入到屏幕的内容。如果你愿意,你可以编写你自己的输入处理程序,并以这种方式完全控制输入和输出的样子。

要编写输入处理程序,您必须编写一个实现InputHandler接口的类。我建议你下载Ant源代码,并看看DefaultInputHandler并创建你自己的版本,修改它以适应你的需求。在源蚂蚁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()); 

我还没有尝试过,但改变printlnprint似乎是一个不错的主意。

完成后,您可以使用classname和(例如)classpath参数将Ant的input任务指向编译的输入处理程序。

+0

非常感谢您的回答。 – Sergey 2013-07-22 17:05:26