ivy build - несколько артефактов разных версий - PullRequest
0 голосов
/ 13 января 2012

Мы недавно начали использовать ant-ivy для java-веб-приложения, и путешествие пока идет хорошо. Я указал transitive = 'false' для всех зависимостей и перечислил log4j версии 1.2.16 в качестве зависимости. Мне приходится использовать последнюю версию log4j, поскольку я полагаюсь на улучшенный макет шаблона.

Основная проблема - при сборке проекта в папке ivy-lib имеется несколько версий log4j. Глядя на проводник пакетов в Eclipse, я вижу правильную версию и похоже, что она загружает только 1.2.16 из ivycachepath.

Есть указатели? Нужно ли удалять каждую зависимость отдельно и посмотреть, какая из них приносит более старые версии?

Спасибо за помощь.

1 Ответ

1 голос
/ 14 января 2012

Я включил пример сборки ant, которая загружает log4j как зависимость, в локальный каталог с именем "lib".

$ ant
$ find lib
lib
lib/log4j-1.2.16.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>
...