从不寻常的svn目录结构迁移到Maven?

从不寻常的svn目录结构迁移到Maven?,第1张

从不寻常的svn目录结构迁移到Maven?

没有这样的东西,一个“普通的” svn目录结构。有在讨论不同的方法一节“规划你的版本库组织”的的
版本控制使用Subversion
的书(甚至是

/trunk
/tags
/branches
名称只是约定,有没有区别标签和分支之间,除非你对他们的看法) 。


  • 我是否必须更改svn目录结构,以使每个项目都有自己的三元组(trunk / branches / tags)?我猜答案是“是”。

不,你不 。参见例如Apache
ServiceMix源树:这是一个多模块的maven项目,但这些模块位于一个之下

trunk
。另一方面,XWiki
不是单一产品,而是
其源代码存储库页面中详细介绍
的产品和项目生态系统,
它具有许多主干/分支/标签。您可以在此处浏览其存储库以了解布局。

但是,选择一种方法还是另一种方法,不仅取决于口味,还取决于您的发布周期(

mvnrelease
稍后再讨论)。如果您的项目中的组件共享相同的版本(即ServiceMix),那么我将仅使用一个中继。如果他们有一个独立的发布周期(例如XWiki),我将使用多个“主干/标签/分支”结构,如该线程中所述:

myrepo  + .links (2)    + trunks      + pom.xml  + parent-pom (1)    + trunk      + pom.xml  + project-A    + trunk      + pom.xml  + project-B    + trunk      + pom.xml

1)项目的父POM具有自己的发布周期。每个组件的POM都将其用作父对象(简单地使用

groupId

artifactId
,否引用
relativePath
)。对于发行版,您必须先发行父POM。

2)这是一种结构,可以轻松检出项目的特定分支,即通常是干线。一个Subversion用户检出myrepo / .links /
trunk以获得所有源的主修订版。诀窍在于,该目录包含

svn:externals
指向该项目所有其他模块(父pom,project-A,project-B)的主干的外部链接(即具有
属性)。此目录中的pom.xml从未发布,它仅包含用于三个模块的模块部分,以启用多模块构建。通过这种构造,您可以轻松设置分支,例如:

myrepo  + .links    + branch-2.x      + pom.xml

我已经多次使用此设置,效果很好。

  • 如果更改结构,那么我会失去上面提到的哪些好处(我的意思是,使用Maven进行 *** 作会更复杂)?

让我一一回答。

  • 借助svn externals,更新和签入都很容易。一个简单

    svn update
    svn commit
    全部完成。

  • 创建标签或分支很简单,因为maven版本插件会为您处理(标签和分支会更干净)。

  • 将资源从一个项目转移到另一个项目看起来并不复杂。

  • 全局重构(例如,更改常用类的包)很容易,因为您仍然可以对干线进行完整的检出。

  • 合并可能不太容易。但是,您真的经常将类从一个项目移动到另一个项目吗?

  • 用maven做这些的等效方法是什么?

如果需要,请使用maven版本插件和svn externals的建议布局之一。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5616057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存