【发布时间】:2021-01-14 19:12:15
【问题描述】:
我想在单个项目目录中处理同一项目的多个存储库。我该如何有效地做到这一点?是否有任何构建/项目管理工具可以执行此操作?
例如,考虑工作区项目结构:
/ProjectWorkspace/
|-> build/(build artifacts of Application, ApplicationInterface, ForkedExternalDependency)
|-> logs/
|-> src/
|-> Application/
| |-> src/com.example.*
| |-> tst/com.example.*
| |-> gradle-build-scripts
| |-> .git/
|
|-> ApplicationInterface/
| |-> src/com.example.*
| |-> tst/com.example.*
| |-> ant-build-scripts
| |-> .git/
|
|-> ForkedExternalDependency/
|-> src/
|-> some-other-build-scripts
|-> .git/
注意事项:
- 应用程序依赖于 ApplicationInterface
- Application、ApplicationInterface 依赖于ForkedExternalDependency
- Application、ApplicationInterface、ForkedExternalDependency依赖于几个外部依赖并共享其中的一些
-
/ProjectWorkspace/src/下的所有目录都是各自独立的存储库/包,具有自己的版本控制和构建脚本 - 不在
/ProjectWorkspace/src/内的其余文件和目录是本地工作区文件,不予维护。 - IDE 中的项目(此处为 IntelliJ IDEA CE)预计将植根于
/ProjectWorkspace - 如果任何包在本地签出,我想使用它们,否则取决于远程发布。 (例如:如果 ApplicationInterface 包在
/ProjectWorkspace/src中可用,我希望 Application 使用它。如果它在工作区本地不可用,我想 Application 使用来自远程存储库的依赖项。)
【问题讨论】:
-
您能解释一下为什么要这样做吗?
-
嗨@j-fabian-meier,我正在为爱好项目编写服务代码。它有一个包含多个支持库的主服务包。我也想在对依赖库进行更改时验证对服务的更改(手动调用和集成测试)。我工作的地方有一个构建工具,可以按照我指定的方式工作,但由于我的代码是一个爱好项目,我正在寻找公共替代方案来实现该行为。
-
嘿@JFabianMeier 添加更多上下文,更多的库可以包括服务代码、服务接口、dao、dao-interface、核心、配置等。
标签: maven gradle build ant developer-tools