目前我有大约16个项目,使用maven构建并部署到同一应用服务器,形成了类似于“门户”的东西。我已经建立了一个父pom来处理常见的依赖和插件配置。目前,我的SVN结构类似于:
portal_root
+project1
+tags
+branches
+trunk
+project2
.
.
.
+projectn
pom.xml
每个项目都是单独部署的。也就是说,project1不依赖于project2,每个项目可以被修改和部署而无需修改其他内容。这在使用 SVN 时会带来问题,因为如果另一个开发人员想要检出整个“portal”根目录(包括父POM),他们也会默认下载所有标签和分支的副本!这并不理想。
我能想到的唯一解决办法就是使用以下内容:
portal_root
+tags
+branches
+trunk
+project1
+src
pom.xml
+project2
.
.
.
pom.xml
然而,现在所有项目更改将在标签文件夹中进行跟踪。对我来说这不是个大问题,但是分支现在似乎变得很痛苦了。我目前还在努力将Teamcity与此连接,这样会更容易一些,因为我只需要监视一个目录(例如tags)就可以捕获所有需要构建的内容。我还将构件部署到企业Nessus存储库中。
我希望有人能在这里给我一些建议,因为我找不到任何讲解整个构建生命周期和最佳实践的文档。
我喜欢能够使用单个maven命令构建和部署所有项目的想法。我也喜欢所有公共依赖项、存储库信息和插件信息都在一个地方。