【问题标题】:How to specify which Ivy resolver to use如何指定使用哪个 Ivy 解析器
【发布时间】:2013-02-07 03:07:07
【问题描述】:

我的理解是 <ivy:resolve/> 将依赖项从配置的 repo 复制到本地 Ivy 缓存中(根在 ${USER_HOME}/.ivy2 下)。但是看了task's docs之后,惊讶的发现竟然没有resolver的属性,比如:

<ivy:resolve file="ivy.xml" conf="compile" resolver="theResolverToUse"/>

所以我问:你如何指定使用哪个解析器,特别是如果(在ivysettings.xml),你可以定义 1+ 个解析器?提前致谢。

更新

例如,这是我的(新兴)ivysettings.xml 中定义的解析器的 sn-p:

<resolvers>  
    <chain name="chainResolver" returnFirst="true">
        <url name="urlResolver">
            <ivy pattern="${ivyRepoRoot}/module_descriptors/${ivyModDescriptorPattern}"/>
            <artifact pattern="${ivyRepoRoot}/artifacts/${ivyArtifactPattern}"/>
        </url>

        <filesystem name="localFileResolver">
            <artifact pattern="${user.home}/.ivy2/local-cache/[artifact]-[revision].[ext]"/>
        </filesystem>
    </chain>  
    <sftp name="publisherResolver" user="fizz" userPassword="buzz" host="example.com">
        <ivy pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/module_descriptors/${ivyModDescriptorPattern}"/>
        <artifact pattern="sftp://example.com:22/usr/local/apache/htdocs/ivy/artifacts/${ivyArtifactPattern}"/>
    </sftp>
</resolvers>

【问题讨论】:

    标签: java ivy dependency-management


    【解决方案1】:

    在 Ivy 中,解析器及其关系、优先级和链与解析任务分开定义。

    多个解析器可以链接在一起,在链式解析器中,请特别注意链中的第一个解析器和“先查找”的概念。

    如果解析器和/或链配置正确,您不必选择使用哪个解析器。当解析器在不同的环境中具有不同的行为时,这非常方便。

    【讨论】:

    • 感谢@akberc (+1) - 请查看我的问题的更新。我已经包含了我的&lt;resolvers/&gt; 定义。我是否理解&lt;ivy:resolve/&gt; 任务将使用查找优先策略在每个解析器(urlResolver、localFileResolver 和 publisherResolver)中查找依赖项?再次感谢!
    • 我假设 publishResolver 将在发布任务中按名称引用。对于解析,将调用链中的两个解析器。由于您已指定 returnFirst,因此不会调用 localFileResolver - 您可能希望反过来使用它。在您的配置中,“查找优先”策略仅限于链,如果在链中的两个解析器中都找不到模块,它只会引用第三个策略。另外,请参阅带有链的“双重”。
    【解决方案2】:

    Chain resolvers 很方便,但如果您想要更多控制,我建议您使用modules 部分,如以下答案所述:

    【讨论】:

      猜你喜欢
      • 2011-04-29
      • 2010-12-07
      • 2012-02-12
      • 1970-01-01
      • 2016-08-24
      • 2017-06-14
      • 2011-07-02
      • 2020-01-14
      • 2012-03-06
      相关资源
      最近更新 更多