2010-03-03 66 views
17

我需要通過scp複製war文件。Ant scp任務不工作,即使在jsch上ant/lib

我已經加入了jsch-0.1.42.jar$ANT_HOME/lib但我仍然收到此錯誤:

Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.Scp was not found. This looks like one of Ant's optional components.

這是以防萬一運行ant -diagnostics的結果:

http://gist.github.com/320859

+0

你在類路徑上有jsch兩次,選擇一個jsch-0.1.29.jar(153401字節) jsch-0.1.42.jar(185746字節) – 2010-03-03 18:58:29

+0

是的,它不適用於它們中的任何一個。 – 2010-03-03 19:00:32

回答

14

這看起來像您的問題,從診斷頂部:

可選任務:不可用

您的$ ANT_HOME/lib目錄缺少ant-jsch.jar,這是您的缺失類來自哪裏。

我不知道這是怎麼發生的 - 我總是在ZIP文件中安裝包含所有可選任務的download site。如果您從Linux軟件包安裝Ant,請嘗試檢查是否有可選任務的單獨軟件包。

一旦你安裝了可選的任務,我會刪除舊版本的jsch.jar,正如@trashgod所示。

+0

解決了它。謝謝 – 2010-03-04 17:28:50

+4

如果您使用MacOSX Lion 10.7+捆綁的'ant',它不會隨ant-jsch.jar提供。下載正式ant的副本並將ant-jsch.jar複製到你的〜/ .ant/lib /以及jsch.jar本身爲我解決了這個問題。 – 2012-02-09 23:25:13

14

我有同樣的問題,並修復它! 記住,你需要BOTHant-jsch.jar(原生從ant或java安裝)和更新jsch(在我的情況下它是jsch-0.1.46.jar)在ant lib目錄中。

您需要從http://www.jcraft.com/jsch/加載最新的jsch.jar並添加到庫文件夾(但不能替換ant-jsch.jar)。

的錯誤很多開發商做:

  1. ant-jsch.jar過時(在這種情況下<SCP>任務是螞蟻未知)
  2. 調整庫版本,所以ant-jsch.jarjsch是兼容的。
  3. jsch不存在的或過時的螞蟻lib目錄與jsch更換
  4. 本地ant-jsch.jar(我做到了......)

在最後2箱子螞蟻知道SCP命令,但是他說,不可用。

+0

如果事情仍然無法正常進行,請注意版本不兼容。升級ant,確保ant-jsch存在,並將jsch升級到最新版本。 – dgorur 2013-07-16 18:21:00

+0

使用'mvn antrun:run'時不起作用。試圖使用ant-jsch-1.9.2和jsch-0.1.54,但它會給出錯誤。 – zygimantus 2017-03-08 11:03:37