常春藤缺少运行时依赖项

时间:2019-04-01 18:13:15

标签: ivy

我正在尝试使用Ivy来管理现有Ant项目中的依赖关系(这是第一次)。它没有下载某些运行时依赖项。

我尝试了各种配置-尽管与Maven相比我不确定它们的含义。 (我确实根据另一种SO中的建议查看了https://www.symphonious.net/2010/01/25/using-ivy-for-dependency-management/,但这没有帮助。)

以下测试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

任何帮助将不胜感激。

0 个答案:

没有答案
相关问题