2

有没有办法配置 ivy 不通过 ivy.xml 下载源代码和许可证文件?

我目前正在尝试使用默认的 ivy repos + spring 存储库。我的 ivysettings.xml 如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<settings defaultResolver="springSource" />
<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" />
<include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml" />
<resolvers>
    <chain name="springSource">
        <url name="com.springsource.repository.bundles.release">
            <ivy
                pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            <artifact
                pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        </url>

        <url name="com.springsource.repository.bundles.external">
            <ivy
                pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            <artifact
                pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
        </url>

        <ibiblio name="public" m2compatible="true" />
        <ibiblio name="shared" m2compatible="true" />
        <ibiblio name="local" m2compatible="true" />
        <ibiblio name="main-chain" m2compatible="true" />
        <ibiblio name="default-chain" m2compatible="true" />
    </chain>
</resolvers>

4

1 回答 1

4

使用 ivy 配置指定所需的映射到依赖项的依赖项(称为传递依赖项):

不知道你用的是什么版本的spring,这个例子下载的是spring 3.0版本:

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>
    <configurations>
        <conf name="compile" description="Compile classpath"/>
    </configurations>
    <dependencies>
        <dependency org="org.springframework" name="org.springframework.core" rev="3.0.0.RELEASE" conf="compile->default"/>
    </dependencies>
</ivy-module>

引用 Maven 模块配置时,请参阅 Maven范围。Maven 中的默认范围是compile,但您可以引用任何其他公共范围。

附加说明

我正在使用一个更简单的设置文件:

<ivysettings>
    <settings defaultResolver="chain"/>
    <resolvers>
        <chain name="chain">
            <ibiblio name="central" m2compatible="true"/>
            <ibiblio name="spring-release"  root="http://repository.springsource.com/maven/bundles/release" m2compatible="true"/>
            <ibiblio name="spring-external" root="http://repository.springsource.com/maven/bundles/external" m2compatible="true"/>
        </chain>
    </resolvers>
</ivysettings>

在我看来,ibiblio解析器是与远程 Maven 存储库集成的最简单方法。我认为这个令人困惑的名称是历史性的,可以追溯到第一个 Maven 存储库站点的原始名称。您需要另外指定m2compatible属性,因为原始 Maven 1 存储库格式现在几乎未知。

也许有一天,ivy 开发人员会创建一个新的“maven”解析器,这将使新用户的生活更轻松。

于 2010-12-05T21:23:34.293 回答