在我的构建构件存储库中,我有来自分支和主干的构建。
我已经测试了我的解析对分支有效,并捕获了正确的项。
但如果依赖项也在主干仓库中,则此操作不起作用。在这种情况下,它从主干而不是我的分支获取依赖项。
如果依赖项不在分支中,我需要从主干repo中拉出它,但如果依赖项在分支中,我需要分支版本,而不是主干版本。
我如何在Ivy中做到这一点?我更希望它只是找到分支版本,然后停止寻找它。这样,如果它从分支中丢失,它就会"掉落"到主干版本。
对于这种情况,我使用构建号的方式是否可能不正确?
下面是一个例子:
trunkbuild - version = "1.0.4"branchbuild - version = "1.0-SNAPSHOT"
我的分支应该改为"1.1-SNAPSHOT"吗?
我的分支中的代码应该总是在一个版本之前,而不是在主干之后。
我认为这是动态修订,这是你要找的:
<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。