0%

构建编译复合构建

多项目构建

1
2
3
implementation project(':poseidon')
implementation project(':helper')
implementation project(':cardadapter')

复合构建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
├── my-app
│ ├── build.gradle
│ ├── my-app.iml
│ ├── settings.gradle
│ └── src
│ └── main
│ └── java
│ └── com
│ └── lastsweetop
│ └── myapp
│ └── Main.java
└── my-utils
├── my-utils.iml
├── number-utils
│ ├── build.gradle
│ └── src
│ └── main
│ └── java
│ └── com
│ └── lastsweetop
│ └── number
│ └── NumberUtils.java
├── settings.gradle
└── string-utils
├── build.gradle
└── src
└── main
└── java
└── com
└── lastsweetop
└── string
└── StringUtils.java

my-app和my-utils 两者都是一个完整的项目,都包含settings.gradle;

settings.gradle

1
includeBuild '../my-utils'

build.gradle

1
2
3
task run {
dependsOn gradle.includedBuild('my-utils').task(':assembleDebug')
}

被复合构建包含的构建有一些限制条件:

  • 必须有settings.gradle文件,及时文件内容是空的
  • 本身不可以是复合构建
  • rootProject.name不能与其他被包含的构建相同
  • rootProject.name不能与复合构建的root工程相同
  • rootProject.name不能与复合构建的rootProject.name相同