【问题标题】:Is there a way to split a multi-module Maven project into different Git repositories?有没有办法将多模块 Maven 项目拆分为不同的 Git 存储库?
【发布时间】:2021-02-05 16:36:24
【问题描述】:

我目前正在开发两种产品。其中之一是我想免费向公众提供的开源库。但是,另一种产品是付费的和封闭源代码的,但使用该库作为依赖项。这两个项目在同一个 Maven 项目中(但只是父项目的不同子模块)。目前,我有一个包含两者的 Git 存储库,但我想分别存放库和付费产品,同时仍然保留它们是同一个 maven 项目的一部分。有什么好方法可以实现这一目标吗? (我知道我可以使用单独的 Maven 项目创建另一个单独的 Git 存储库,但是,我想允许它,这样当我使用 mvn package 时我可以构建两个项目并非常有效地在双方编写代码)。

【问题讨论】:

  • 将开源部分分离到一个单独的存储库(git)中并单独构建。在您的闭源项目中将其用作通常的依赖项。最简单的方法...

标签: git maven pom.xml dependency-management


【解决方案1】:

你说:

我知道我可以使用单独的 Maven 项目创建另一个单独的 Git 存储库

并且,正如@khmarbaise in a comment 所建议的那样,最简单的方法是将开源组件分离到自己的存储库中,并像使用任何其他依赖项一样使用它。

我想允许它,这样我可以在使用 mvn 包时构建两个项目

如果这是优先事项,您可以继续将单独的项目视为闭源项目的 Maven 模块。使用<module>../clone-directory-for-open-source-module</module>add it as a Git submodule 之类的方式引用结帐。

您需要确保该模块独立构建,以及在组合项目中构建,并且您的发布过程可能更复杂。

两面都写代码非常高效

紧耦合开发的一个风险是,您将在开源组件中做出孤立无意义的更改。这可能是也可能不是问题,具体取决于第三方对该库的贡献程度。

【讨论】:

    猜你喜欢
    • 2020-10-22
    • 2019-05-10
    • 2021-05-27
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多