1

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

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

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

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

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

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

这是一个例子:

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

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

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

4

1 回答 1

2

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

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

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

  • 释放
  • 快照

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

因此,以下常春藤解析器设置应该足以让它工作,“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>

笔记:

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

于 2011-12-15T22:28:02.197 回答