2012-08-08 4 views
2

개미 빌드 파일에 sshexec 작업이 있습니다. 이 작업은 내가 수행하고자하는 명령의 출력을 보여줍니다. 내 질문은 : 출력을 표시하지 않는 방법은 무엇입니까? 사전에sshexec 개미 작업.

<sshexec verbose="false" failonerror="true" 
    trust="yes" host="${app.deploy.server}" 
    username="${deploy.user}" 
    command="find /home/software/public_html/${app.name} -name *.jar* -exec md5sum {} +" 
    password="${deploy.password}" 
    output="jarsAtServer.txt" outputproperty="trash" /> 

감사 :

여기 내 작업입니다.

사용자 정의 로거를 사용하여 sshexec 작업 (또는 다른 작업)의 출력을 침묵 할 수
+0

내 작업 :

+0

귀하의 작업이 질문에 표시되도록 서식을 수정했습니다. 첫 번째 절 [markdown documentation] (http://stackoverflow.com/editing-help)을보고 싶을 수도 있습니다 ... – larsks

+0

'-q' 플래그를 사용하여 조용한 모드에서 Ant를 실행 해 보았습니까? http://ant.apache.org/manual/running.html#options –

답변

2

:

javac -cp ant.jar MuteTaskLogger.java 

음소거하는 작업이 속성을 사용하여 지정됩니다와

import org.apache.tools.ant.*; 
public class MuteTaskLogger extends DefaultLogger 
{ 
    public void messageLogged(BuildEvent event) 
    { 
     Task task = event.getTask(); 
     if (task != null && 
      task.getTaskName().equals(event.getProject().getProperty("mute.task"))) 
     { 
      return; 
     } 
     super.messageLogged(event); 
    } 
} 

컴파일 "mute.task":

ant -logger MuteTaskLogger -Dmute.task=sshexec -lib <folder-of-MuteTaskLogger-class> 

MuteTaskLogger를중 하나에 넣어 정리할 수 있습니다.. logger 및 mute.task 등록 정보는 ANT_ARGS environment variable에 추가 할 수 있습니다.

2

ant sshexec는 실행될 명령과 명령 출력을 출력합니다. suppresssystemout 플래그 (ant 1.9.0부터)는 명령 출력을 억제하는 데 사용할 수 있지만 명령 자체는 계속 표시됩니다. 명령에 암호를 전달해야하는 경우 문제가 될 수 있습니다.

이 경우 input 속성을 사용하여 화면 (또는 프로세스 목록)에 표시되지 않고 원격 명령 입력에 직접 데이터를 전달할 수 있습니다.

이에 대한 대답은 this 질문에 대한 답변을 참조하십시오.