log4jを依存関係として「lib」というローカルディレクトリにダウンロードするant buildの例を紹介しました。
$ ant
$ find lib
lib
lib/log4j-1.2.16.jar
ご覧のとおり、1つのバージョンのjarファイルしか存在しません。これがあなたの問題の診断に役立つことを願っています。
のbuild.xml
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="retrieve">
<property name="lib.dir" location="lib"/>
<property name="report.dir" location="report"/>
<target name="retrieve" description="Retrieve dependencies locally">
<ivy:retrieve pattern="${lib.dir}/[artifact]-[revision](-[classifier]).[ext]"/>
<ivy:report todir="${report.dir}" graph="false"/>
</target>
<target name="clean" description="Remove build directories">
<delete dir="${lib.dir}"/>
<delete dir="${report.dir}"/>
</target>
<target name="clean-all" depends="clean" description="clean ivy cache">
<ivy:cleancache />
</target>
</project>
ivy.xml
<ivy-module version="2.0">
<info organisation="org.demo" module="demo"/>
<configurations defaultconfmapping="compile->default">
<conf name="compile" description="jars used for compilation"/>
</configurations>
<dependencies>
<dependency org="log4j" name="log4j" rev="1.2.16"/>
</dependencies>
</ivy-module>
あなたはおそらく、あなたのビルドファイルがどのようなものかを証明でした。いくつかの事が私を困惑させる。例えば、 "ivy-lib"はどういう意味ですか?次に、推移的な依存関係を無効にすることはあなたの権利ですが、依存関係管理を使用することの主な利点の1つを失うことになります。 –
解決の前にlibフォルダを削除/消去しますか? ** sync = "true" **を検索タスクに指定しない限り、Ivyは古いアーティファクトを削除しません。 – oers