これが私のために働いた2つの解決策です:
- Gerrit は単一の改行を折りたたむため、"\r\n" の代わりに二重の改行 "\n\n" を使用します。
- 各行の前にスペースを付けると、Gerrit がそれらを個別の等幅行として表示するようになります。段落は、コード サンプルに役立つ HTML pre スタイルを使用して書式設定されます。
出典: Re: gerritとコメント形式の複数行コメント
上記のソリューションを機能させるには、ProcessBuilder を使用して ssh コマンドを実行する必要もありました。
例: 解決策 1 を使用してメッセージを送信する:
String solution1_msg = "Test1\n\nThis is a test\n\nTesting has completed"
String solution2_msg = "Test2\n This is a test\n Testing has completed"
ProcessBuilder pb = new ProcessBuilder("ssh", "-p", "29418", "<gerrit server>",
"gerrit", "review", "--message=\"" + solution1_message + "\"commit SHA-1>");
pb.redirectErrorStream(); //redirect stderr to stdout
Process process = pb.start();
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while((line = reader.readLine())!= null) {
System.out.println(line);
}
process.waitFor();
解決策 2 でも同じコードが機能します。solution2_message
の代わりにメッセージとして渡しますsolution1_message
。
ソース: Java を介して SSH で複数のコマンドを実行するにはどうすればよいですか?