java:使用ssh命令tom对gerrit进行多行注释
例如,当我使用shell发布对gerrit的评论时 ssh-p 29418 gerritlink gerrit review--verified=0'--message=[FAILURE]提交消息检查失败 PCPID不存在 A360-ID不存在。“d9a5d29799ada8237679efd1121cd7e3a85f333d 这在gerrit评论中效果很好,您可以在那里看到多行。 但是当我使用java调用命令时,所有的句子都在一行中。java:使用ssh命令tom对gerrit进行多行注释,java,ssh,multiline,gerrit,Java,Ssh,Multiline,Gerrit,例如,当我使用shell发布对gerrit的评论时 ssh-p 29418 gerritlink gerrit review--verified=0'--message=[FAILURE]提交消息检查失败 PCPID不存在 A360-ID不存在。“d9a5d29799ada8237679efd1121cd7e3a85f333d 这在gerrit评论中效果很好,您可以在那里看到多行。 但是当我使用java调用命令时,所有的句子都在一行中。 如何在java中以多行方式进行注释?我很确定这是否有帮助,
如何在java中以多行方式进行注释?我很确定这是否有帮助,但您可以尝试使用
分离命令代码>或&
以下是两个对我有效的解决方案:
Gerrit折叠单个换行符,因此请使用双换行符“\n\n”
而不是“\r\n”
在每一行前面加上空格,这将说服Gerrit将它们显示为单独的单间隔行。段落使用HTML预样式进行格式化,这对代码示例很有用
资料来源:和
我还必须使用ProcessBuilder运行ssh命令,以使上述解决方案正常工作
例如,使用解决方案1发送消息:
String solution1\u msg=“Test1\n\n这是一个测试\n\n测试已完成”
String solution2\u msg=“Test2\n这是一个测试\n测试已完成”
ProcessBuilder pb=新的ProcessBuilder(“ssh”、“-p”、“29418”、”,
“gerrit”、“review”、“--message=\”“+solution1\u message+”\“commit SHA-1>”;
pb.redirectErrorStream()//将stderr重定向到stdout
Process进程=pb.start();
InputStream InputStream=process.getInputStream();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=null;
而((line=reader.readLine())!=null){
系统输出打印项次(行);
}
process.waitFor();
同样的代码也适用于解决方案2;将solution2\u消息
作为消息传递,而不是solution1\u消息
来源:gerrit是您与存储库通信的库吗?一个非常快速的谷歌搜索称它是一个基于网络的代码管理工具。请向我们展示一些代码以帮助您。gerrit_message=“[FAILURE]提交消息检查失败。”+“\r\n\r\n”+消息\u PCP+“\r\n\r\n”+消息\u A360;runCmd(“ssh-p 29418 gerrit.com gerrit review--verified=0'--message=“+gerrit\u message+“\'”+strGERRIT\u PATCHSET\u REVISION,listener,workspace);当我在shell中运行这个命令时,它适用于多行;所有句子都在java run.BTW之后的一行中,runCmd只是一个调用shell命令的方法,太长了,无法在不同命令之间粘贴分号(即“;”或“&&”,不带引号)。
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();