默认情况下,任务输出如下:
target name:
[input] some message:
your input
[next task]
我想看到这样的事情:
target name:
[input] some message: your input
[next task]
如何制作,该任务不会在消息后将光标放到新行?
答案 0 :(得分:2)
可以做到,但有一点涉及。 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
似乎是一个好主意。
完成后,您可以使用input
和(例如)classname
参数将Ant的classpath
任务指向编译的输入处理程序。