Jef*_*f H 5 android gradle kotlin
我正在尝试建立一个复合构建。目前的结构是
projectA
-build.gradle
-settings.gradle
-app
-build.gradle
projectB
-buid.gradle
-settings.gradle
-sdk
-build.gradle
Run Code Online (Sandbox Code Playgroud)
我需要使用projectB作为projectA中的依赖项,但是projectB仍然需要作为独立项目运行。
这是我目前拥有的
ProjectA的settings.gradle包含
includeBuild('../projectB')
Run Code Online (Sandbox Code Playgroud)
ProjectA build.gradle 包含
group "com.example"
Run Code Online (Sandbox Code Playgroud)
项目A:App build.gradle包含
dependencies {
implementation 'com.example:projectB'
}
Run Code Online (Sandbox Code Playgroud)
projectB build.gradle 包含
group "com.example"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试构建projectA时,出现错误:
Could not resolve com.example:projectB.
Required by:
project :app
Run Code Online (Sandbox Code Playgroud)
我在这里做错了什么?我觉得它与“com.example”有关,但我无法弄清楚将包含的项目作为依赖项引用的正确方法是什么。
您没有替换项目 A 中的依赖项。您可以参考本节中的示例 6: https: //docs.gradle.org/current/userguide/composite_builds.html#included_build_declaring_substitutions
在您的情况下,您想要修改项目 A 的 settings.gradle 文件,使其看起来像:
includeBuild('../projectB') {
dependencySubstitution {
substitute module("com.example:projectB") using project(':projectB')
}
}
Run Code Online (Sandbox Code Playgroud)
这将告诉 gradle 在配置阶段,它应该用 ../projectB 中找到的 project :projectB 替换对 com.example:projectB 的任何依赖项。
综上所述,看来您确实对包含在projectB中定义的sdk模块感兴趣。如果是这种情况,您可以替换using project(':projectB')为using project(':sdk')
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |