有没有办法将多模块 Maven 项目拆分为不同的 Git 存储库?
Posted
技术标签:
【中文标题】有没有办法将多模块 Maven 项目拆分为不同的 Git 存储库?【英文标题】:Is there a way to split a multi-module Maven project into different Git repositories? 【发布时间】:2021-02-05 16:36:24 【问题描述】:我目前正在开发两种产品。其中之一是我想免费向公众提供的开源库。但是,另一种产品是付费的和封闭源代码的,但使用该库作为依赖项。这两个项目在同一个 Maven 项目中(但只是父项目的不同子模块)。目前,我有一个包含两者的 Git 存储库,但我想分别存放库和付费产品,同时仍然保留它们是同一个 maven 项目的一部分。有什么好方法可以实现这一目标吗? (我知道我可以使用单独的 Maven 项目创建另一个单独的 Git 存储库,但是,我想允许它,这样当我使用 mvn package
时我可以构建两个项目并非常有效地在双方编写代码)。
【问题讨论】:
将开源部分分离到一个单独的存储库(git)中并单独构建。在您的闭源项目中将其用作通常的依赖项。最简单的方法... 【参考方案1】:你说:
我知道我可以使用单独的 Maven 项目创建另一个单独的 Git 存储库
并且,正如@khmarbaise in a comment 所建议的那样,最简单的方法是将开源组件分离到自己的存储库中,并像使用任何其他依赖项一样使用它。
我想允许它,这样我可以在使用 mvn 包时构建两个项目
如果这是优先事项,您可以继续将单独的项目视为闭源项目的 Maven 模块。使用<module>../clone-directory-for-open-source-module</module>
或add it as a Git submodule 之类的方式引用结帐。
您需要确保该模块独立构建,以及在组合项目中构建,并且您的发布过程可能更复杂。
两面都写代码非常高效
紧耦合开发的一个风险是,您将在开源组件中做出孤立无意义的更改。这可能是也可能不是问题,具体取决于第三方对该库的贡献程度。
【讨论】:
以上是关于有没有办法将多模块 Maven 项目拆分为不同的 Git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章
转帖:maven maven项目构建ssh工程(父工程与子模块的拆分与聚合)