我在这里有许多项目,它们之间以及外部库之间存在依赖关系。依赖管理是通过ivy和我们自己的存储库完成的。我们最近不得不进行分支,因为有一个版本的项目在QA中,另一个版本在当前开发中完成。
问题是我找不到在新分支中使用常春藤的方法,而不将分支属性添加到每个内部依赖项。
我考虑过将branch属性添加到resolve任务并激活内联模式,但是它也适用于不正确的外部库。但是将branch属性添加到每个内部dep都会很麻烦。
答案 0 :(得分:4)
所以你想区分从分支发布的人工制品和从主干发布的人工制品?
我使用常春藤buildnumber任务来增加每个出版物的版本号。
<ivy:buildnumber organisation="${ivy.organisation}" module="${ivy.module}" revision="${project.version}"/>
<ivy:publish pubrevision="${ivy.new.revision}" resolver="${project.resolver}" status="${project.status}">
<artifacts pattern="${build.dir}/dist/[artifact].[ext]"/>
</ivy:publish>
分支使用 project.version 属性来指示它们来自哪个版本的主干分支,例如:
project.version=1.0-MYBRANCH
此方法意味着已发布的工件具有以下修订号:
1.0-MYBRANCH.0
1.0-MYBRANCH.1
1.0-MYBRANCH.2
..
而主干版本将是:
1.0.0
1.0.1
1.0.2
..