2011-10-13 50 views
3

我在这里有很多项目之间有依赖关系,以及外部库。依赖性管理是通过ivy和我们自己的仓库来完成的。我们最近不得不分支,因为有一个版本的质量保证项目和另一个目前正在开发的项目。有没有办法配置Ivy从分支中获取依赖关系,而不需要编辑每个有关的依赖关系?

问题是,我找不到在新分支中使用常青藤而不向每个内部依赖项添加分支属性的方法。

我曾想过将分支属性添加到解析任务并激活内联模式,但是它也适用于不正确的外部库。但是将分支属性添加到每个内部区域将会很麻烦。

+0

分支不会由您的SCM处理吗?这将使ivy.xml文件的不同副本被使用...我不认为我理解你的问题 –

+0

啊,好的。 Thx为您的评论。我会尽力澄清: 分支中的ivy文件与中继线中的ivy文件完全相同。因此,如果我从分支发布,那么工件只会增加版本号,并且在主干上的下一个解决方案中,这将作为主干上项目的最新dep解决。 所以不知何故,我必须将分支上的任何东西都标记为分支dep。但我不想编辑项目中的每个ivy文件并修改分支属性,以便在我重新合并到主干时抛出所有这些。 – hackbert

回答

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 
..