ivy build - beberapa artefak dengan versi berbeda

Kami baru-baru ini mulai menggunakan ant-ivy untuk aplikasi web java dan sejauh ini perjalanannya berjalan baik. Saya telah menentukan transitive='false' untuk semua dependensi dan mencantumkan log4j versi 1.2.16 sebagai dependensi. Saya harus menggunakan log4j versi terbaru karena saya mengandalkan tata letak pola yang ditingkatkan.

Masalah utama - ketika proyek dibuat, ada beberapa versi log4j di folder ivy-lib. Saat melihat paket explorer di Eclipse, saya melihat versi yang benar dan sepertinya hanya mengunduh 1.2.16 dari ivycachepath.

Ada petunjuk? Apakah saya perlu menghapus setiap ketergantungan satu per satu dan melihat mana yang membawa versi lama?

Terima kasih untuk bantuannya.


person sumit    schedule 13.01.2012    source sumber
comment
Bisakah Anda mendemonstrasikan seperti apa file build Anda. Beberapa hal membingungkan saya. Misalnya apa yang Anda maksud dengan ivy-lib? Kedua, mematikan ketergantungan transitif adalah hak Anda, namun Anda akan kehilangan salah satu manfaat utama menggunakan manajemen ketergantungan.   -  person Mark O'Connor    schedule 14.01.2012
comment
apakah Anda menghapus/menghapus folder lib sebelum menyelesaikannya? Ivy tidak menghapus artefak lama kecuali Anda menentukan sync=true untuk tugas pengambilan.   -  person oers    schedule 16.01.2012


Jawaban (1)


Saya telah menyertakan contoh ant build yang mengunduh log4j sebagai ketergantungan, ke direktori lokal bernama "lib".

$ ant
$ find lib
lib
lib/log4j-1.2.16.jar

Seperti yang Anda lihat, hanya ada satu versi toples yang ada. Semoga ini bisa membantu dalam mendiagnosis masalah Anda.

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>
person Mark O'Connor    schedule 14.01.2012