Eclipseでantビルドしようとすると、エラーCould not load definitions from resource net/sf/antcontrib/antcontrib.properties. It could not be found.
が発生します。そこで、ant-contrib-0.6.jarをダウンロードして、Apache antの/lib
ロケーションに保管しましたが、それでも問題は解決しません。また、CLASSPATH
システム変数に/lib
ロケーションを指定してみました。このエラーを回避するにはどうすればよいですか?
「classpath」要素を使用して、ant-contrib JARへの絶対パスを明示的に指定できます。
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${path-to-ant-contrib}/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
このStackOverflowページにない重要な点の1つは、正しいANT_HOME env varを設定することが絶対に不可欠であり、この設定なしでは、ファイルシステムのant-contrib-1.0b3.jarのコピー先に関係なく、antが同じエラーを通知し続けることです。この欠落により、数時間かかりました。 =)
ただし、Eclipseなしで、純粋なアリでこのエラーを受け取ります。
この方法で修正しました:
JARをAntランタイムクラスパスエントリに追加します。
Window>Preferences>Ant>Runtime>Classpath
JARをAntホームエントリまたはグローバルエントリに追加します。
Ant contrib jarを正しいlibディレクトリにインストールしていないようです。 ANTが複数インストールされている場合、これは困難です。
私の提案は、ANTプラグインを「$ HOME/.ant/lib」ディレクトリにインストールすることです。さらに一歩進んで、次のようにプロセスを自動化できます。
<project name="ant-contrib-tasks" default="all">
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<target name="bootstrap">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/ant-contrib.jar" src="http://search.maven.org/remotecontent?filepath=ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar"/>
</target>
<target name="all">
<for param="file">
<fileset dir="." includes="*.txt"/>
<sequential>
<echo message="Found file @{file}"/>
</sequential>
</for>
</target>
</project>
ビルドXMLで以下のコードを使用します。
<path id="ant.classpath">
<pathelement location="${ant.jarPath}/ant.jar" />
<pathelement location="${ant.jarPath}/ant-contrib-0.3.jar" />
</path>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath refid="ant.classpath" />
</taskdef>
そして、ビルドプロパティファイルで:
ant.jarPath = D:/ antjars
そして、ant.jarとant-contrib-0.3.jarをディレクトリ:D:/ antjarsに配置します
Ant-contrib jarファイルの読み取り権限があることを確認してください。
私たちの場合、別のユーザーでファイルをコピーした後、同じエラーメッセージが表示されませんでした。