Antスクリプトに問題があります。
Linuxサーバーにファイルをコピーする必要があります
<copy file="../Ant/lib/jsch-0.1.50.jar" tofile="${ant.home}/lib/jsch-0.1.50.jar" />
<scp todir="${server.user}:${server.password}@${server.dev}:${server.dev.dir.config}" trust="true" verbose="true">
<fileset dir="${src.home}/Config/">
<include name="**/*" />
</fileset>
</scp>
ファイルは正しくコピーされますが、次のエラーが表示されます。
BUILD FAILED
C:\dev.xml:179: Problem: failed to create task or type scp
Cause: Could not load a dependent class com/jcraft/jsch/Logger
It is not enough to have Ant's optional JARs
you need the JAR files that the optional tasks depend upon.
Ant's optional task dependencies are listed in the manual.
Action: Determine what extra JAR files are needed, and place them in one of:
-C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
-C:\Users\Administrator\.ant\lib
-a directory added on the command line with the -lib argument
このJARをAntクラスローダーに動的に追加するにはどうすればよいですか?
例外自体は非常に明確であり、問題の理由を示しています。
Action: Determine what extra JAR files are needed, and place them in one of:
-C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
-C:\Users\Administrator\.ant\lib
-a directory added on the command line with the -lib argument
ライブラリの依存関係 から確認してください
jsch.jar 0.1.50以降:sshexecおよびscpタスク( http://www.jcraft.com/jsch/index.html )
このlibをantlibにコピーすると、スタンドアロンAntの問題が解決します。
Eclipseの場合:[クラスパス]タブの[Ant/Runtime]エントリの[Eclipse設定]に移動します。 「外部Jarの追加」ボタンを使用して、jsch.jarをAntのクラスパスに追加します。
私は解決策を見つけました ここ
EclipseをIDEとして使用し、Eclipseからantを実行する場合、必要なjarファイルjsch-0.1.51.jar(または任意のバージョン)をコピーするのに十分ではありません。また、を変更する必要があります。 classpathantは実行時に使用します。
Windows->ウィンドウ>設定> Ant>ランタイムを使用する場合Mac-> Eclipse>設定> Ant>ランタイムを使用する場合
[Antホームエントリ...]の[クラスパス]タブで、新しいjarを追加する必要があります。
その後、それは動作します。
同様の<copy
タグを使用して、JSCHのすべての依存関係をANTのlib
ディレクトリに追加します。
JSCHの依存関係を見つけるには、そのドキュメントを確認してください。
Jsch-0.1.51.jarを/ usr/share/ant/lib /(または任意のディレクトリ)にコピーした後、rootだけでなくすべてのユーザーがJARファイルを読み取り可能にします。私のようになってはいけません。なぜそれが機能しないのかを理解するために30分を費やしてください。