管理多模块项目

时间:2019-07-16 07:54:01

标签: java git maven spring-boot jenkins

当前设置:

  1. 行家
  2. Spring Boot
  3. 角度
  4. 12个Maven项目+ 1个Pom项目
  5. Git
  6. 詹金

目前我有单独的13个项目。 每次如果我必须在另一台机器上进行安装,那么我就必须分别克隆每个项目。 我也为自动构建做了Jenkin管道设置。

  

寻找

     
      
  1. 一旦我克隆了单个pom / main项目,就应该克隆所有其他项目
  2.   
  3. 如果我选择主项目,则所有其他项目代码都应更新
  4.   
  5. 每当我启动jenkin时,子项目都应该得到修订   构建。

  6.   
  7. 想为每个子项目保留单独的仓库,以便我有多个需求时可以在其他项目中重用。

  8.   

我想到的解决方案:

  1. Maven Child项目
  2. Git子模块

上述解决方案中存在问题

 1. Maven Child projects
 --> If we are using maven child projects then we are literally copying the sub projects in pom/main project. 
In this case i cannot reuse the project. Every time i have to clone the project to use it. 
For big project with number of team member working, merging issue will come.

2. Git Sub modules
--> This is best solution for me but when we create sub module it always point to commit not the head revision.
Every time i have to manually pull the latest code  push it to parent project.
This approach we can not use in Jenkins.

是否有解决所有问题的最佳方法。

1 个答案:

答案 0 :(得分:0)

您可以通过指定要从其他存储库添加哪些模块来添加git子模块。将在根目录上创建一个.gitmodules文件,其中将包含所有子模块的列表以及您的其他首选项。

Creating git submodules for projects in different repositories

有一些可用的命令可用于同步git模块及其所有子模块。

您可以采取的步骤是:

  1. 使用git submodule add [ssh or https path]例如添加项目中的所有子模块git submodule add https://github.com/test
  2. 添加其他子模块并推送更改
  3. 通过运行
  4. 获取子模块内容
git submodule init
 git submodule update

或运行git clone --recurse-submodules https://github.com/chaconinc/MainProject来获取子模块

我建议您通读this链接,并确保通过此链接满足您的要求。