メインメニューの "Build my project"ボタンを追加するIntelliJ IDEAプラグインを開発します。ユーザーがボタンをクリックすると、プラグインはSBTプロジェクトのビルドを開始し、SBT出力をコンソールに入力して、ユーザーにビルドの進行状況を表示させる必要があります。ビルドを実行するには、3つのアクションが必要です:IntelliJ IDEAプラグインからsbtビルドを実行
- プロジェクトディレクトリにcdします。
- "sbt package"コマンドを実行します。
- 印刷コマンドをコンソールに出力します。ここで
は私のコードです:
`
Runtime r = Runtime.getRuntime();
Process p = r.exec("cd /project_dir && sbt package");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null){
MyIdeaView.getInstance(project).getConsole().print(line);
}
`
の問題は、私は(のRuntime.execに "& &" で区切られたコマンドのカップルを、渡すとき)、私は出力が表示されません。 私は、コマンドの別のカップルと同じことを試してみました:
Process p = r.exec("cd /project_dir && pwd");
と問題がSBTコマンドではないので、私はまだ、すべての出力が表示されません。私は単一のコマンドを渡すと、例えば。 "pwd"または "ls"をRuntime.exec()メソッドに渡すと、コマンド出力が正常に表示されます。 IDEAプラグインから "cd"と "sbt package"の両方のコマンドを実行し、 "sbt package"コマンドの出力を得る方法は誰にでもありますか?