2012-12-18 57 views
0

我使用exec Ant任務掃描文件。它工作正常,但不顯示scp命令的輸出。在螞蟻中顯示執行任務的輸出

下面是代碼

<target name="scp-jar" depends = "jar"> 
     <exec executable="/usr/bin/scp"> 
      <arg value="my.jar"/> 
      <arg value="myserver:dir"/>   
     </exec> 
    </target> 

什麼樣的變化我必須做出顯示scp命令的進度輸出文件?

+0

如果stdout不是tty,scp將不會輸出進度條,所以ant也不能重定向它.. http://cwshep.blogspot.jp/2009/06/showing-scp-progress-using- zenity.html – Naytzyrhc

+0

@TanukiSoftware嗯,解釋它。所以問題在於SCP,而不是螞蟻。 – Sudar

回答

0

由於@Tanuki軟件所提到的,scp不會,如果stdout isn't tty打印進度條。

所以問題更多的是scp而不是Ant任務。

我試過使用scp-v選項,但它顯示調試信息和進度條。

所以只有兩種選擇

  • 使用Exec的任務,錯過了進度條。 (或)
  • 使用Scp任務,但它需要額外的jar,在mac中無法正常工作,並且很難使用.sshconfig文件中的默認設置。

我最終選擇了第一個選項。

0

默認情況下,命令的輸出會寫入stdout,您可以指定輸出屬性將其更改爲文件。更多細節在這裏:http://ant.apache.org/manual/Tasks/exec.html

雖然很難重定向SCP的輸出。你可能想在你的情況下使用標誌-v。

+0

我已經檢查了手冊。它默認說輸出是重定向的,但在這種情況下不會發生。你的意思是scp命令的-v標誌? – Sudar

+0

是的,-sc的sc。 –

0

ant SCP task可以顯示該信息。用戶詳細標誌。

這個任務需要additional jars(jsch.jar 0.1.42或更高版本)

+0

我沒有使用scp任務,因爲它需要額外的jar。我試圖將其設置爲我的Mac,但不能。這就是爲什麼我最終使用了exec任務。 – Sudar

+0

通過附加罐子擴展罐子是個好主意。爲什麼重新發明輪子? – Jayan