spring - 一个包含多个Git库的Java项目

  显示原文与译文双语对照的内容
0 0

我们有一个大型 java web项目,并且在本地使用 Git,并将它的存储为 In-House Git服务器来提交/推送代码。

以下是 repo 我们的git的全部分离:


repo - java/spring/maven/hibernate entity and dao's jar
repo - java/spring/maven - business services 1 which makes use of the previous jar
repo - java/spring/maven - business services 2 which makes use of the previous jar
repo - java/spring/maven - business services 3 which makes use of the previous jar
repo - java/spring/maven/smartgwt - business services 2 which makes use of the previous 3 business service jars.

所有这些构建单独使用它们自己的Maven pom.xml 文件。 在这个体系结构中,当我们添加一个新的DAO方法时,我们将一个类似的业务服务调用添加到这个新业务服务。

我的同事不喜欢 git,并且发现这些单独的仓库管理这些单独的仓库太多了。 他还认为分支对于每个 repo 来说都会变得太。 我个人认为回到svn会很疯狂,而且我认为子模块可以能是一种更好的方法。

一个更好的解决方案是:


repo - Project_BackEnd, which contains 3 or more sub-modules
submodule- java/spring/maven - business services 1 which makes use of the previous jar
submodule- java/spring/maven - business services 2 which makes use of the previous jar
submodule- java/spring/maven - business services 3 which makes use of the previous jar

repo - Project_FrontEnd
submodule - java/spring/maven/smartgwt - business services 2 which makes use of the previous 3 business service jars.

我确实找到了具有多个 java spring 项目的Git的一个特定示例,但没有找到任何。 如果这是其他问题的副本,我深表歉意。

更新:尽管我不介意一个整体项目的不同方面,但是不会比我更加困难。

我在子模块和子树之间做了大量的研究,并不知道它们是否适合我们的需求。

只为后端创建git存储库可能更容易。 我们使用 Maven,我们可以有一个父 Maven 项目,然后创建 Maven 模块。 这样,各种后端库将拥有自己的pom.xml 文件,并且仍然构建不同的jars 文件。

任何对这些子模块的更改都会触发一个更改,而word可以在该项目中进行构建。

想法?

时间: 原作者:

0 0

我不太清楚你的问题。 依赖应该由 Maven 处理,所以在你的VCS中如何构造代码并不重要。

子模块有自己的问题,许多人试图避免它们。 特别是子模块绑定到特定的提交( 与SVN外部相反),你需要频繁地更新子模块。

所以:

  • 使用一个可以同时拉/推多个仓库的IDE像。
  • 一个 Git repo 和( Maven ) 父POM和多个模块组合在一个中。 这种主要的缺点是你的CI系统并不知道哪些模块已经更新,当你需要重新构建一个模块时,可能需要构建整个的repo 。
...