Gradle依赖关系:按相对路径编译项目
是否可以在Gradle(在Android Studio中)中指定对当前项目边界之外的另一个gradle项目的依赖关系?例如,相对路径如下所示:
dependencies { compile project('../../stdlib/dagger')
}
所以我想的是这样的:
我有一个Android应用程序。结构如下:
- MyApp(路径为/ Users / foo / workspace / MyApp)
- 应用程序(路径为/ Users / foo / workspace / MyApp / app)
我有一个gradle android库项目,其中包含3个子模块:
- stdlib(路径为/ Users / foo / workspace / stdlib)
- 匕首(路径为/ Users / foo / workspace / stdlib / dagger)
- utils(路径为/ Users / foo / workspace / stdlib / utils)
- http(路径为/ Users / foo / workspace / stdlib / http)
我想要的是将Dagger,utils,http模块编译到MyApp项目中。
stdlib库模块正在大量开发中,并将随着MyApp的增长而增长。因此,我不想每次更改时都将它们推送到Maven存储库中。
那么有可能以某种方式链接其他gradle项目吗?我正在寻找临时解决方案。一旦源代码稳定,我将把std库推入maven存储库。
另外,作为解决方法,可以使用sourceSet解决方案。我还考虑过在MyApp中创建一个库文件夹,该文件夹是与stdlib的符号链接,但是我没有按预期运行它:
- MyApp(路径为/ Users / foo / workspace / MyApp)
- 应用程序(路径为/ Users / foo / workspace / MyApp / app)
- 库(符号链接到/ Users / foo / workspace / stdlib)
dependencies {
compile project(':libraries:dagger')
}
任何想法如何解决gradle中的这种依赖性?
回答:
您可以使用主项目中的“
settings.gradle”文件包含外部根项目模块。它也必须是gradle项目,在特定的Android构建环境中,您必须将每个模块配置为“
android-library”插件项目。
例如,在“ MyApp”项目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多项目配置。
以上是 Gradle依赖关系:按相对路径编译项目 的全部内容, 来源链接: utcz.com/qa/423805.html