我试图拆分一个存在于整体git存储库中的大型Maven应用程序。代码本身已经是模块化的,但是由于所有模块都在一个存储库中,每个构建都需要很长时间(多长时间?太长),每个IDE在执行检出时都会被推到极限等等。
关于整体仓库的一个好处是,通过共享一个始终存在的公共父POM,依赖和配置管理大大简化(例如,每个人都获得相同版本的Spring,Hibernate和Jackson),我们得到了一些漂亮的功能,例如在父pom级别重建时的Reactor Sorting,能够mvn versions:set
全局地修改版本号,同时保留开发人员一次只构建一个项目的能力。
如何分解项目以满足这四个条件:
我最初的想法是将父pom的内容复制到每个模块pom中,摆脱父pom引用,并将每个模块检查成一个新的repo - 但这只能完成条件#1和#4 at #2和#3的成本。