是否可以在Gradle(在android studio中)指定一个依赖于当前项目边界之外的另一个gradle项目?例如,相对路径如下:
dependencies {
compile project('../../stdlib/dagger')
}
所以我特里是这样的:
我有一个Android应用程序。结构如下所示:
我有一个包含3个子模块的gradle android库项目:
我想要的是将dagger,utils,http模块编译到MyApp项目中。
stdlib库模块正在大力开发,随着MyApp的发展而增长。因此,每当我做一些改变时,我都不想将它们推入maven存储库。
那么有可能以某种方式链接其他gradle项目吗? 我正在寻找一个临时解决方案。一旦源稳定,我会将std库推送到maven存储库。
此外,作为解决方法,可以使用sourceSet的解决方案。我还考虑在MyApp中创建一个库文件夹,它是stdlib的符号链接,但我没有按预期工作:
dependencies { compile project(':libraries:dagger') }
知道如何在gradle中解决这种依赖吗?
答案 0 :(得分:79)
您可以使用' settings.gradle'包含外部根项目模块。来自主项目的文件。它也必须是一个gradle项目,并且在特定的Android构建情况下,您必须将每个模块配置为" android-library"插件项目。
例如,在' MyApp' project settings.gradle你可以试试这个:
include 'app'
include 'dagger'
project(':dagger').projectDir = new File('/Users/foo/workspace/stdlib/dagger')
您的MyApp' build.gradle必须反映出“匕首”的需要。模块在相对路径中的Gradle方式:
dependencies {
compile project(':dagger')
}
就是这样。使用您需要的每个外部模块重复此步骤,您将拥有正确的Gradle多项目配置。