我在Android Studio(1.3.0)中创建了一个项目,其中包含多个模块,将作为库用于其他项目。
图书馆计划:
在我的库中,一些模块对其他模块有一些依赖( intraproject依赖)。假设libmod1
依赖于libmod2
。在libmod1
的 build.gradle 中,我有compile project(':libmod2')
。
应用项目:
从应用程序项目中,我想导入libmod1
(项目间依赖项)。在 build.gradle 中,我添加了compile project(':..:LibProject:libmod1')
。
问题:
当我构建应用程序项目时,我从gradle收到错误消息:
错误:(24,0)带路径'的项目:libmod2'无法找到 project':..:LibProject:libmod1'。
Gradle无法解决工程内项依赖关系。
我必须将libmod1
的 build.gradle 更改为compile project(':..:LibProject:libmod2')
才能摆脱此错误。这意味着当我从另一个项目引用它们时,必须更改intraproject依赖项。
问题:
有没有办法告诉Gradle项目内部依赖项是相对于库项目而不是相对于应用程序项目?这样当我对库模块的项目间依赖项时,项目内项依赖项可以解决?
当然,我也可以删除模块之间的项目内依赖关系。但有没有不同的方法来解决这个问题?
答案 0 :(得分:2)
您必须在 settings.gradle 中添加依赖项。如果模块位于同一文件夹中,则只需通过
连接即可include ':libmod1',':libmod2'
如果您的库位于其他文件夹(不在任何子文件夹中),则必须在 settings.gradle 中连接它们:
project(':libmod1').projectDir = new File(settingsDir, '../path/to/libmod1')
另见https://docs.gradle.org/current/userguide/multi_project_builds.html