【问题标题】:Resolve Ivy dependency version order解决 Ivy 依赖版本顺序
【发布时间】:2012-01-21 10:10:58
【问题描述】:

在我的构建工件存储库中,我从分支和主干构建。

我已经测试了我的解决方案适用于分支,并抓取了正确的项目。

但如果依赖项也在主干存储库中,这将不起作用。在这种情况下,它从主干而不是我的分支中获取依赖项。

如果依赖项不在分支中,我需要解决从主干存储库中提取依赖项,但如果依赖项在分支中,我需要分支版本,而不是主干版本。

如何在 Ivy 中做到这一点?我希望它只是找到分支版本,然后停止寻找它。这样,如果分支中缺少它,它就会“落入”主干版本。

在这种情况下,我使用内部版本号的方式可能不正确吗?

这是一个例子:

trunkbuild - 版本 = “1.0.4” 分支构建-版本=“1.0-SNAPSHOT”

我的分支应该是“1.1-SNAPSHOT”吗?

我的分支中的代码应该始终是 AHEAD 版本,而不是在主干之后。

【问题讨论】:

    标签: ant ivy artifactory


    【解决方案1】:

    我认为您正在寻找的是动态修订:

    <dependency org="mygroup" name="myartifact" revision="latest.release"/>
    <dependency org="mygroup" name="myartifact" revision="latest.integration"/>
    

    Maven 存储库支持两种基本类型的存储库:

    • 发布
    • 快照

    只有在我的主干分支上构建的工件才会发布到发布存储库。

    因此,以下 ivy 解析器设置应该足以使其正常工作,“latest.integration”解析为快照存储库中的工件。

    <ivysettings>
        <settings defaultResolver="default"/>
        <resolvers>
            <chain name="default">
                <ibiblio name="nexus-central" root="http://myhost/nexus/content/repositories/central" m2compatible="true"/>
                <ibiblio name="nexus-releases" root="http://myhost/nexus/content/repositories/releases" m2compatible="true"/>
                <ibiblio name="nexus-snapshots" root="http://myhost/nexus/content/repositories/snapshots" m2compatible="true"/>
            </chain>
        </resolvers>
    </ivysettings>
    

    注意:

    您可以在存储库管理器中创建一个存储库组,并将 ivy 设置简化为单个 URL。

    【讨论】:

      猜你喜欢
      • 2011-02-18
      • 2012-04-29
      • 2012-07-07
      • 2018-12-05
      • 1970-01-01
      • 2012-04-21
      • 2021-01-06
      • 2016-01-06
      • 2011-12-11
      相关资源
      最近更新 更多