如何并行开发两个Maven/Gradle项目 无需频繁发布本地依赖
解决方案:使用Gradle复合构建(Composite Build)
这是最适配你需求的方案,既可以保证两个项目完全独立迭代,又可以实现开发阶段的实时关联,不需要依赖本地Maven仓库,完美解决你提到的两个痛点。
配置步骤
你不需要修改Library项目的任何现有配置,原有发布到Maven仓库的配置可以保留,后续要发布正式版本时仍然可以正常使用。仅需要对Product项目做少量调整即可:
方式一:临时关联(不修改项目配置)
如果你不想改动Product的正式配置,只需要在本地开发运行Product时,在构建命令后增加--include-build参数指定Library项目的本地路径即可:
./gradlew run --include-build ../your_local_path/library
Gradle会自动识别匹配依赖声明的Library项目,替换掉原本需要从Maven仓库拉取的构件,修改Library代码后直接运行Product即可生效,无需额外发布操作。
方式二:固定关联(适合长期并行开发)
直接在Product项目的settings.gradle文件中添加一行配置,指定Library项目的本地路径:
includeBuild '../your_local_path/library'
配置完成后同步Product的Gradle即可:
- 你可以直接删掉Product的
repositories配置中的mavenLocal(),不会影响依赖解析 - IDEA会自动将Library作为关联项目导入,你既可以在同一个IDEA窗口中同时修改两个项目的代码,也可以保留两个独立的IDEA实例开发,修改Library代码后切回Product直接运行即可生效,不需要走发布流程
注意事项
- 保证Library项目的
group、name、version配置与Product中依赖声明的对应参数完全一致,Gradle才能正确替换依赖 - 当你需要构建发布正式版本的Product时,只需要注释掉
settings.gradle中的includeBuild配置,Gradle就会正常从远程Maven仓库拉取正式发布的Library版本,完全不影响两个项目的独立发布流程
内容的提问来源于stack exchange,提问作者Dims
相关产品推荐
相关产品推荐

