Плющ отсутствует зависимость во время выполнения - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь использовать Ivy для управления зависимостями в существующем проекте Ant (впервые).Это не загрузка некоторых зависимостей времени выполнения.

Я пробовал различные конфигурации - хотя я не уверен, что они означают по сравнению с Maven.(Я смотрел на https://www.symphonious.net/2010/01/25/using-ivy-for-dependency-management/ на основе рекомендаций в другом SO, но это не помогло.)

Следующий тестовый скрипт Ant иллюстрирует проблему, загружая одинаковую зависимость как с Ivy, так и с Maven.:

<project name="ivy-test" default="copy-deps" basedir="."
    xmlns:artifact="antlib:org.apache.maven.artifact.ant"
    xmlns:ivy="antlib:org.apache.ivy.ant">

    <property name="ivy.lib.dir" value="ivy-lib" />
    <property name="mvn.lib.dir" value="mvn-lib" />

    <target name="clean">
        <delete dir="${ivy.lib.dir}" />
        <delete dir="${mvn.lib.dir}" />
    </target>

    <target name="copy-deps" depends="ivy-copy, mvn-copy" />

    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="ivy-2.4.0.jar"/>
    <target name="ivy-copy">
        <mkdir dir="${ivy.lib.dir}" />

        <ivy:resolve type="jar" conf="default->*">
            <dependency org="net.sf.okapi.filters" name="okapi-filter-openxml" rev="0.36" />
        </ivy:resolve>

        <ivy:retrieve type="jar" />
    </target>

    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant"
        classpath="maven-ant-tasks-2.1.3.jar" />
    <target name="mvn-copy">
        <mkdir dir="${mvn.lib.dir}" />

        <artifact:dependencies filesetid="mvn.fileset">
            <dependency groupid="net.sf.okapi.filters" artifactId="okapi-filter-openxml" version="0.36" scope="runtime" />
        </artifact:dependencies>

        <copy todir="${mvn.lib.dir}">
            <fileset refid="mvn.fileset" />
            <mapper type="flatten" />
        </copy>
    </target>
</project>

Если сравнить содержимое каталогов Ivy и Maven, в Ivy отсутствуют три JAR-файла.

$ ls mvn-lib | while read i; do [ ! -f ivy-lib/$i ] && echo $i; done
common-lang-3.3.2.jar
snakeyaml-1.21.jar
stax2-api-3.1.4.jar

Любая помощь будет принята с благодарностью.

...