http://ant.apache.org/manual/Tasks/exec.htmlから:Antビルドスクリプトから対話型アプリケーションを実行するには?
あなたは フォークプログラムと対話することはできません、それに 入力を送信する唯一の方法は、入力と inputStringから属性を経由しています。 Ant 1.6以降の に注意してください。分岐したプログラムで の入力を試みると、 はEOF(-1)を受け取ります。これは、Ant 1.5の変更 です。そのような試みは、 がブロックされます。
antの対話型コンソールプログラムを起動して対話するにはどうすればよいですか?
私がしたいことはdrush sqlcの機能に似ています。これは、適切なデータベースの資格情報を使用してmysqlクライアントインタプリタを起動しますが、これに限定されません。
は、ここでのサンプルユースケースです:アリ使用して実行すると
<project name="mysql">
<target name="mysql">
<exec executable="mysql">
<arg line="-uroot -p"/>
</exec>
</target>
</project>
:パスワードを入力した後
$ ant -f mysql.xml mysql
Buildfile: /home/ceefour/tmp/mysql.xml
mysql:
Enter password:
BUILD SUCCESSFUL
Total time: 2 seconds
を、それがすぐに終了します。
は、シェル(期待される動作)上で直接実行するときに何が起こるかとこれを比較します
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1122
Server version: 5.1.58-1ubuntu1 (Ubuntu)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
私の使用例では機能しません(改訂された質問を参照)。あなたのシステムで私のAntスクリプトをテストし、それが動作するかどうか教えてください。 –