메인 메뉴에서 "Build my project"버튼을 추가하는 IntelliJ IDEA 플러그인을 개발합니다. 사용자가 버튼을 클릭하면 플러그인은 SBT 프로젝트의 빌드를 시작하고 콘솔에 SBT 출력을 넣어 사용자가 빌드 진행 상황을 볼 수 있도록해야합니다. 빌드를 실행하려면 다음 세 가지 조치가 필요합니다.IntelliJ IDEA 플러그인에서 sbt 빌드 실행
- 프로젝트 디렉토리에 cd.
- "sbt 패키지"명령을 실행하십시오.
- 인쇄 명령이 콘솔에 출력됩니다. 여기
내 코드입니다 :
`
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"명령의 출력을 얻는 방법을 제안 할 수 있습니까?