这里有两个对我有用的解决方案:
- Gerrit 折叠单个换行符,所以使用双换行符“\n\n”而不是“\r\n”。
- 在每一行前加上空格,这将说服 Gerrit 将它们显示为单独的等距行。该段落使用 HTML 预样式进行格式化,这对于代码示例很有用。
来源: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 中运行多个命令?