Ant secureInputHandler:要求用户在接受输入之前按Enter键

时间:2011-11-29 15:44:54

标签: ant

我使用SecureInputHandler在ant脚本中接受来自最终用户的密码,但它强制用户在允许文本输入之前按 Enter 。 这是预期的行为吗?另外,我没有找到关于这个主题的很多文档,请随时指出我的任何资源。

<input message="Please enter password:"  addproperty="password.property">
    <handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>

2 个答案:

答案 0 :(得分:4)

SecureInputHandler需要Ant 1.7.1或更高版本(以支持处理程序)和Java 6或更高版本(以提供Console类)。

如果您没有正确的Ant版本,则会收到错误消息。如果您没有正确的Java版本,Ant将回退到默认的输入处理程序。

请注意,您也可以使用:

<handler type="secure"/>

可以看到javadoc和源here

在Windows cmd shell中使用Ant 1.8.2和Java 1.6,我得到了这个:

test:
Please enter password:<cursor here>

密码被屏蔽。您输入密码并按 Enter

在cmd shell中使用Cygwin shell或Java 1.5,我得到了这个:

test:
    [input] Please enter password:
<cursor here>

密码未被屏蔽。您输入密码并按 Enter

使用Eclipse控制台,根本无法输入密码。我键入,它在控制台上回显,我按 Enter ,没有任何反应。

我注意到在Input任务的文档中,它说:

  

IDE行为取决于IDE:有些人等待输入,有些则等待   让你输入。在这种情况下,将密码放在一个   (安全)属性文件并在输入任务之前加载。

换句话说,它可能不适用于IDE,使用解决方法。

答案 1 :(得分:0)

exec干扰了输入任务。 可以通过在exec任务中指定inputstring=””来解决。 请参阅exec causes other tasks to hang or leads to strange behaviour of <input> tasks中的Ant FAQ