2012-02-20 4 views
0

出力は、次のようになります。ant <input>タスクの出力を変更するにはどうすればよいですか?デフォルトでは、タスクの

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

私はこのような何か見てみたい:

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

はどのように作ることができるが、そのタスクは、新しい行にカーソルを置いていませんメッセージの後に?

+0

[antのカスタムタスクの出力を変更するにはどうすればいいですか?](http://stackoverflow.com/questions/9359062/how-to-change-ants-custom-task-output) –

+0

忍耐強く応答を待ちます。必要ならば元の質問を編集してください。二度目に人を悩ますのは投稿しないでください –

+0

@ MarkO'Connorいいえ、私の意見では親戚ですが、別の質問です。これらの質問にも同様の解決策があるかもしれませんが、そうでないかもしれません。 は「ネイティブ」なAntタスクであり、ソリューションはソースコードを編集することなく構成することができます。 – Sergey

答えて

2

これはできますが、それは少し関係しています。 inputタスクには、自分が望むことを簡単に行うためのオプションはありません。

ただし、入力ハンドラを指定すると、Ant 1.7以降では、inputタスクの出力(および入力)を制御できます。 Antにはいくつかの入力ハンドラが付属しています。たとえば、入力した内容を画面にエコーしない安全な入力用のハンドラです。必要に応じて、独自の入力ハンドラを書くことができます。こうすることで、入力と出力がどのように見えるかを完全に制御することができます。

入力ハンドラを書き込むには、InputHandlerインターフェイスを実装するクラスを作成する必要があります。 AntのソースコードをダウンロードしてDefaultInputHandlerを見て、独自のバージョンを作成して、必要に応じて修正することをお勧めします。 Antのv1.8.3のソースでは、迅速かつ入力は次のように実装されています。私はそれを試していないが、変更printprintlnは良いアイデアだと思い

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()); 

完了したら、classnameと(例えば)classpathのパラメータを使用して、Antのinputタスクをコンパイル済み入力ハンドラに向けることができます。

+0

お返事ありがとうございました。 – Sergey

関連する問題