gradle 的多项目依赖管理
Multiproject dependency management with gradle
目前有 3 个 projects/git 回购设置 gradle:
- 应用程序(java、android)
- 后端(java、spring)
- 客户端(java,vaadin)
依赖关系:
app -> backend
client -> backend
因为 app
和 client
不依赖于 backend
中的所有内容,就像它们不依赖于 spring 等,而是依赖于某些模型 类],我需要找到一个好的解决方案来构建项目。
我想到了...
1。 backend
神器
- 2 个源文件夹,例如:
src/main/java
和 src/api/java
api
编译为jar神器的源码文件夹
- 包含在
app
和 client
中
2。扩展 sourceSets
- 将
backend/src/api/java
添加到 app
和 client
3。新 api
项目
app -> api
client -> api
backend -> api
结论
第一个和第二个解决方案不需要第四个 git 回购,我认为在 backend
中包含 api
组件不是一个坏主意,但在gradle 项目依赖项的上下文,如 3.,我认为会更透明。
有什么最佳做法吗?
感谢您的帮助!
最佳做法是选项 3(创建一个新的 api
项目)。
旁注:您不需要为 api 项目创建单独的存储库,如果需要,您可以将其与后端项目放在一起。
编辑:添加回购布局
如果您希望 api 位于服务器旁边,则需要这种布局。然后引用 API 如 project(":backend:api")
.
├── app
│ └── build.gradle
├── backend
│ ├── api
│ │ └── build.gradle
│ └── server
│ └── build.gradle
├── build.gradle
├── client
│ └── build.gradle
└── settings.gradle
目前有 3 个 projects/git 回购设置 gradle:
- 应用程序(java、android)
- 后端(java、spring)
- 客户端(java,vaadin)
依赖关系:
app -> backend
client -> backend
因为 app
和 client
不依赖于 backend
中的所有内容,就像它们不依赖于 spring 等,而是依赖于某些模型 类],我需要找到一个好的解决方案来构建项目。
我想到了...
1。 backend
神器
- 2 个源文件夹,例如:
src/main/java
和src/api/java
api
编译为jar神器的源码文件夹- 包含在
app
和client
中
2。扩展 sourceSets
- 将
backend/src/api/java
添加到app
和client
3。新 api
项目
app -> api
client -> api
backend -> api
结论
第一个和第二个解决方案不需要第四个 git 回购,我认为在 backend
中包含 api
组件不是一个坏主意,但在gradle 项目依赖项的上下文,如 3.,我认为会更透明。
有什么最佳做法吗?
感谢您的帮助!
最佳做法是选项 3(创建一个新的 api
项目)。
旁注:您不需要为 api 项目创建单独的存储库,如果需要,您可以将其与后端项目放在一起。
编辑:添加回购布局
如果您希望 api 位于服务器旁边,则需要这种布局。然后引用 API 如 project(":backend:api")
.
├── app
│ └── build.gradle
├── backend
│ ├── api
│ │ └── build.gradle
│ └── server
│ └── build.gradle
├── build.gradle
├── client
│ └── build.gradle
└── settings.gradle