1## 关于deps、external_deps的使用 2 3在添加一个模块的时候,需要在BUILD.gn中声明它的依赖,为了便于后续处理部件间依赖关系,我们将依赖分为两种——部件内依赖deps和部件间依赖external_deps。 4 5### 依赖分类: 6 7**部件内依赖:** 现有模块module1属于部件part1,要添加一个属于部件part1的模块module2,module2依赖于module1,这种情况就属于部件内依赖。 8 9**部件间依赖:** 现有模块module1属于部件part1,要添加一个模块module2,module2依赖于module1,module2属于部件part2。模块module2与模块module1分属于两个不同的部件,这种情况就属于部件间依赖。 10 11部件内依赖使用deps,部件间依赖使用external_deps。 12 13### 示例: 14 15**部件内依赖示例:** 16 17```gn 18import("//build/ohos.gni") 19ohos_shared_library("module1") { 20 …… 21 part_name = "part1" # 必选,所属部件名称 22} 23``` 24 25``` 26import("//build/ohos.gni") 27ohos_shared_library("module2") { 28 …… 29 deps = [ 30 "module1的gn target", 31 …… 32 ] # 部件内模块依赖 33 part_name = "part1" # 必选,所属部件名称 34} 35``` 36 37部件内依赖和一般的依赖一样 38 39**部件间依赖示例:** 40 41``` 42import("//build/ohos.gni") 43ohos_shared_library("module1") { 44 …… 45 part_name = "part1" # 必选,所属部件名称 46} 47``` 48 49模块1所属部件的ohos.build文件 50 51``` 52{ 53 "subsystem":"子系统名称", 54 "parts": { 55 "part1": { 56 "inner_kits": [ 57 { 58 "header": { 59 "header_base": "头文件所属目录", # 头文件所属目录 60 "header_files": [ 61 "头文件名" 62 ] # 头文件名列表 63 }, 64 "name": "module1的gn target" 65 }, 66 ], 67 …… 68 } 69 } 70} 71``` 72 73``` 74import("//build/ohos.gni") 75ohos_shared_library("module2") { 76 …… 77 external_deps = [ 78 "part1:module1", 79 …… 80 ] # 部件间模块依赖,这里依赖的模块必须是依赖的部件声明在inner_kits中的模块 81 part_name = "part2" # 必选,所属部件名称 82} 83``` 84 85注意:部件间依赖要写在external\_deps里面,格式为”部件名:模块名"的形式,并且依赖的模块必须是依赖的部件声明在inner_kits中的模块。 86 87