- PR -

Ant : SSH,SCPタスクが使えない

1
投稿者投稿内容
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2006-06-19 07:36
いつもお世話になっています。

All-in-one-Eclipseを使用しています。
導入されているAntが1.6.5のはずなので、scpやsshexecタスクを使用しようとしていますが、「scp task is not found」のようになってしまい使用できません。
Antホーム項目下にant-jsch.jarがあるのは確認しています。
タスクを追加したら良いのかと思いましたが名前欄等どう追加してよいか分からず、試しに名前「scp」で追加しましたが「〜.Scp class not found」のようになってしまい、やはり使えません。

同じような問題を解決された方いらっしゃいますでしょうか?
(作業端末からWeb参照不可のため、事象説明があいまいで申し訳ございません)
koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2006-06-19 09:00
Antのマニュアルにあるとおり、
jschタスクを使うためにはjschのjarファイルが必要です。
ここから、jsch-0.1.28.jarをダウンロードして、
ANT_HOME/libに入れてください。

taskdefは必要なかった気がします。
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2006-06-19 12:11
>>koeさん
ありがとうございました。確かに使えました。

にしても、
「Scp.classやSshexec.classを持っているant-jsch.jarって何者?」
「なぜEclipseのAntエディタはオートコンプリートでscpやsshexec
 タスクを提示してくるのか?
 あらかじめjarが入っているからではないのか?
 (そのくせ実行するとタスクとみなさないのはなぜ?)」
といったところ疑問が残っています。

どなたかそのあたりについて詳しい方いらっしゃいましたら教えていただけると幸いです。
koe
大ベテラン
会議室デビュー日: 2003/07/13
投稿数: 198
投稿日時: 2006-06-20 10:46
詳しくないですしソースもちゃんと読んでいないので、以下は想像ですが

「Scp.classやSshexec.classを持っているant-jsch.jarって何者?」

→ant-jsch.jarに入っているのは、ScpやSshexecタスクを定義する
クラスだけで、jsch自身のクラスは含まれていません。
ですので、ANT_HOMEにjschのjarが無いとClassNotFoundExceptionが
発生するのは当然のことです。
同梱していないのは…配布のライセンスが違うからでしょうかね。
それとも、「欲しいものは別途ダウンロードして」というポリシーなのかもしれません。

「なぜEclipseのAntエディタはオートコンプリートでscpやsshexec
 タスクを提示してくるのか? 」

→Eclipseはbuild.xmlで有効なタスク定義を拾って補完しているようです。
build.xml内でtaskdefしたタスクも補完してくれますし。
scp自体のタスク定義自体はant標準で行われています。

ちなみに、Antの起動スクリプトやmainクラス周りのソースを読むと、
ANT_HOME/lib以下のjarファイルを拾ってほにゃららするコードが
見受けられます。その辺をちゃんと読めば分かるかもしれません。
ペンギン
常連さん
会議室デビュー日: 2003/11/06
投稿数: 39
投稿日時: 2006-06-21 21:24
なるほど、タスクは定義しているがモノはないから、と…。
分かりました、ありがとうございました。
ymnk
会議室デビュー日: 2006/07/28
投稿数: 1
投稿日時: 2006-07-28 17:47
浦島フォローで恐縮ですが。。。
引用:

koeさんの書き込み (2006-06-19 09:00) より:
Antのマニュアルにあるとおり、
jschタスクを使うためにはjschのjarファイルが必要です。
ここから、jsch-0.1.28.jarをダウンロードして、
ANT_HOME/libに入れてください。


そのjschのjarは、Eclipse SDKにすでに含まれています。
Eclipse SDK 3.2ですと、plugins/ の下に com.jcraft.jsch_0.1.28.jarが
あると思いますが、そちらをそのまま使っても問題ないと思います。
1

スキルアップ/キャリアアップ(JOB@IT)