コマンドラインから動作するようにAntスクリプト(現在MyEclipse内から使用中)を変更しているところです。私はこれを行っているので、誰でもプロジェクトをチェックアウトして、MyEclipseなしでビルドできます。私が遭遇している問題は、MyEclipseに舞台裏の依存関係が含まれていることです。これを行うには、ワークスペースのAnt構成を確認し、設定ダイアログで選択したライブラリに基づいてクラスパスをコンパイルします。簡単に言うと、MyEclipseを使用せずに、これらの依存関係を取得し、スクリプトを十分にスマートにして、それらを単独で含める必要があります。
私に頭痛の種を与えているタスクは、sshexecタスクとscpタスクです。これらは、実行するためにjschのバージョンを必要とするオプションのantタスクです。MyEclipseのAntクラスパスからjschを削除し、プロジェクト自体のlibフォルダー(lib / dev)に追加しました。com.jcraft.jsch.UserInfo
MyEclipseは、SSHExecクラスがjsch-0.1.44.jarの一部である依存クラスを見つけることができなかったとすぐに文句を言いました。
ビルドスクリプト内からAntのクラスパスを設定する方法がわかりません。スクリプトに要素を追加する次のコードがありますpath
が、タスクまたは別の要素に明示的に関連付けられていない限り、Antはこれを使用しないと思います。
<path id="web-jars">
<fileset dir="${web-lib}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${app-lib}"> <!-- this is where jsch resides -->
<include name="**/*.jar" />
</fileset>
</path>
taskdef
sshexecタスクとscpタスクを定義するために使用する必要があるようです。
<taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec"
classpathref="web-jars"/>
MyEclipseはこれについて不平を言います、"taskdef A class needed by class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec cannot be found: com/jcraft/jsch/UserInfo"
それは明らかにclasspathref、web-jarsにあります。そして、この不正な形式または誤って構成されたtaskdefのために、スクリプトで何も実行できません。