1

我想下载 json-lib-2.3-jdk15.jar。我发现 ivy 没有分类器标签,所以我使用 maven 一个,下面是 ivy.xml

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
       xmlns:m="http://ant.apache.org/ivy/maven">
    <info organisation="xxxx" module="xxx" status="integration"/>
    <dependencies>
        <dependency org="net.sf.json-lib" name="json-lib" rev="2.3"> 
            <artifact name="json-lib" type="jar" m:classifier="jdk15"/>
        </dependency>
    </dependencies>
</ivy-module>

和 ivysetting.xml

<ivysettings>
    <settings defaultResolver="default" />
    <include url="${ivy.default.settings.dir}/ivysettings-public.xml" />
    <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml" />
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>

    <caches artifactPattern="[organisation]/[module]/([branch]/)[type]s/([platform]/)[artifact]-[revision](.[ext])" />
    <resolvers>
        <filesystem name="local">
            <ivy
                pattern="${ivy.local.default.root}/[organisation]/[module]/([branch]/)[revision]/ivy.xml" />
            <artifact
                pattern="${ivy.local.default.root}/[organisation]/[module]/([branch]/)[revision]/[type]s/([platform]/)[artifact](.[ext])" />
        </filesystem>
        <ibiblio name="public" m2compatible="true" usepoms="true" pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" /> 
        <chain name="default" returnFirst="true">
                    <resolver ref="local" />
            <resolver ref="public"/>
        </chain>
    </resolvers>
</ivysettings>

但是我还是不能下载。似乎 m:classifier 不起作用。对此有何建议?谢谢。

我终于找到了根本原因。我不应该使用

xmlns:m="http://ant.apache.org/ivy/maven

我应该使用

xmlns:m="http://ant.apache.org/ivy/extra

另一件事,就我而言,我在“工件”标签中添加了“conf”分发,这将使 jar 下载失败。所以不要在“工件”中添加“conf”。

4

1 回答 1

1

为我工作......你使用的是什么版本的常春藤?

以下示例包含一些建议的增强功能

例子

Apache Ant(TM) version 1.8.2
Apache Ivy 2.3.0-rc2

常春藤.xml

<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
    <info organisation="xxxx" module="xxx"/>
    <configurations>
        <conf name="jdk15"   description="JDK 1.5 dependencies"/>
    </configurations>
    <dependencies>
        <dependency org="net.sf.json-lib" name="json-lib" rev="2.3" conf="jdk15->master"> 
            <artifact name="json-lib" type="jar" m:classifier="jdk15"/>
        </dependency>
    </dependencies>
</ivy-module>

笔记:

  • 使用配置总是一个好主意。在这种情况下,我创建了一个名为“jdk15”的文件以使用 jdk15 分类器对文件进行分组
  • 远程“master”配置是特殊的,不包含传递依赖(参见下面的链接进行解释)
  • Maven 范围如何通过 ivy 映射到 ivy 配置

常春藤设置.xml

<ivysettings>
    <settings defaultResolver="central" />
    <resolvers>
        <ibiblio name="central" m2compatible="true"/> 
    </resolvers>
</ivysettings>

笔记:

  • 这是一个最小的常春藤设置文件。(事实上​​你可以省略该文件,它的功能是相同的)。
  • 您是否使用“本地”解析器?根据我的经验,这是不必要的(除非您在构建期间发布工件)
于 2013-01-11T20:42:10.243 回答