我在Android Studio(1.3.0)中创建了一个项目,该项目将包含几个模块,并且将用作其他项目的库。
图书馆项目:
在我的库中,某些模块与其他模块具有某些依赖关系(项目内依赖项)。假设libmod1
依赖于libmod2
。在libmod1
的build.gradle中,我有compile project(':libmod2')
。
应用项目:
从一个应用程序项目中,我想导入libmod1
(项目间依赖项)。在build.gradle中,我添加compile project(':..:LibProject:libmod1')
。
问题:
当我构建应用程序项目时,我从gradle中收到一条错误消息:
Gradle无法解决项目内依赖项。
我必须将libmod1
的build.gradle更改为compile project(':..:LibProject:libmod2')
才能消除此错误。意味着当我从另一个项目引用它们时,必须更改项目内的依赖项。
问题:
是否有办法告诉Gradle项目内依赖项是相对于库项目的,而不是相对于应用程序项目的? 这样,当我对库模块有项目间依赖关系时,可以解决项目内依赖关系?
当然,我也可以删除模块之间的项目内依赖关系。但是,有没有其他方法可以解决此问题呢?
最佳答案
您必须在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