2

<scp>ビルドファイルで Ant タスクを使用しようとしています。ターゲットを実行するたびにエラーが発生します。

cannot be found: com/jcraft/jsch/UserInfo

Ant 1.7 でこの問題が発生することについて話している投稿をいくつか読みました。ant-jsch.jar一部の投稿では、ant_home ライブラリからファイルを削除することについて話しています。残念ながら、ant_home は他の多くのプロジェクトで一般的であり、lib ディレクトリから jar ファイルを削除または更新できないため、それを行うことはできません。

Ant 構成を純粋に使用してこの問題を解決できる方法はありますか?

4

1 に答える 1

3

ant-jsch.jarApache Ant チームによって開発された ssh 関連のタスクが含まれていますjsch.jarが、それらの ssh タスクの依存関係である jsch ライブラリが含まれています。

jsch.jarがあなた$ANT_HOME/libの中にあるかどうかを確認し、jar に が含まれているかどうかも確認してくださいUserInfo.class

上記のいずれかが発生した場合は、 の最新バージョンをダウンロードして、jsch.jarに入れ$ANT_HOME/libます。

私は現在、jsch.jar昨年ダウンロードした Ant 1.8.4 を問題なく使用しています。


アップデート:

最初にこのページを確認してください:

http://ant.apache.org/manual/install.html#optionalTask​​s

<scp>およびその他の ssh タスク (ant-jsch.jar) は、デフォルトで Ant バイナリ配布に含まれていることに注意してください。Ant の lib ディレクトリにデフォルトで含まれているため<taskdef>、使用するために記述する必要はありません。次の点を考慮して、そのディレクトリ<scp>に配置することをお勧めします。jsch.jar

  1. これらの ssh タスクはクラスパス定義をサポートしていません。つまり、ssh タスクでそれ<classpath>を指すように定義してjsch.jarから参照することはできません。
  2. またjsch.jar、システムの CLASSPATH 環境変数に含まれる任意のディレクトリに配置することもできますが、これはお勧めできません。
  3. 通常、タスクとその依存関係を同じディレクトリに配置します。
于 2012-09-10T02:13:49.787 に答える