Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:使用ssh命令tom对gerrit进行多行注释_Java_Ssh_Multiline_Gerrit - Fatal编程技术网

java:使用ssh命令tom对gerrit进行多行注释

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中以多行方式进行注释?我很确定这是否有帮助,

例如,当我使用shell发布对gerrit的评论时

ssh-p 29418 gerritlink gerrit review--verified=0'--message=[FAILURE]提交消息检查失败

PCPID不存在

A360-ID不存在。“d9a5d29799ada8237679efd1121cd7e3a85f333d

这在gerrit评论中效果很好,您可以在那里看到多行。 但是当我使用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();