我有一个SVN仓库,它具有以下多项目结构:
|--root-project
| |--trunk
| | |--src
| | |--build.gradle
| |
| |--branches
| | |--1
| |
| |--tags
| | |--release1.0
| |
| |--project-a
| | |--trunk
| | | |--src
| | | |--build.gradle
| | |--branches
| | |--1
| | |--tags
| | | |--release1.0
| | | |--release1.1
| |
| |--project-b
| | |--trunk
| | | |--src
| | | |--build.gradle
| | |--branches
| | |--1
| | |--tags
| | | |--release1.0
| |
| |-- common
| | |--project-c
| | | |--trunk
| | | | |--src
| | | | |--build.gradle
| |
| | | |--branches
| | | | --tags
| | | | |--release1.0
项目-a和项目-b依赖于项目-c。目录结构需要如下来对https://docs.gradle.org/current/userguide/multi_project_builds.html上的示例进行建模:
|--root-project
| |--src
| |--build.gradle
| |
| |--project-a
| | |--src
| | |--build.gradle
| |
| |--project-b
| | |--src
| | |--build.gradle
| |
| |--project-c
| |--src
| |--build.gradle
我可以使用我目前拥有的SVN repo结构的gradle多项目支持吗?或者是否需要重构SVN repo目录以支持gradle多项目?或者目录是否应该重组以更好地遵循最佳实践?
答案 0 :(得分:2)
Gradle 3.1中包含一个名为composite build support的杀手级功能。它应该做你需要的一切。这个功能改变了游戏规则!用户指南here
其他选项包括:
使用持续集成(例如travis或jenkins)将项目工件(jar)发布到工件存储库(例如artifactory或nexus)和参考工件而不是源代码
构建项目并将工件(jars)发布到本地存储库并从那里引用(例如publishing to maven local)