Gradle依赖关系:通过相对path编译项目

是否有可能在Gradle(在android studio中)指定到当前项目边界之外的另一个gradle项目的依赖? 例如,相对path如下所示:

dependencies { compile project('../../stdlib/dagger') } 

所以,我是这样的:

我有一个Android应用程序。 结构如下所示:

  • MyApp(path是/ Users / foo / workspace / MyApp)
    • 应用程序(path是/用户/富/工作区/ MyApp /应用程序)

我有一个包含3个子模块的gradle android库项目:

  • stdlib(path是/ Users / foo / workspace / stdlib)
    • 匕首(path是/ Users / foo / workspace / stdlib / dagger)
    • utils(path是/ Users / foo / workspace / stdlib / utils)
    • http(path是/ Users / foo / workspace / stdlib / http)

我想要的是将匕首,utils,http模块编译成MyApp项目。

stdlib库模块正在大力开发之中,随着MyApp的发展,它将不断增长。 因此,我不希望每次进行一些更改时将它们推送到一个Maven存储库中。

那么有没有可能连接其他的gradle项目? 我正在寻找一个临时的解决scheme。 一旦源码稳定,我将把std库推入Maven仓库。

此外,作为解决方法,使用sourceSet的解决scheme将是可能的。 我也考虑过在MyApp中创build一个库文件夹,它是stdlib的一个符号链接,但是我并没有像预期的那样工作:

  • MyApp(path是/ Users / foo / workspace / MyApp)
    • 应用程序(path是/用户/富/工作区/ MyApp /应用程序)
    • 库(符号链接到/ Users / foo / workspace / stdlib)
  dependencies { compile project(':libraries:dagger') } 

任何想法如何解决gradle这样的依赖?

Related of "Gradle依赖关系:通过相对path编译项目"

您可以使用主项目中的“settings.gradle”文件包含外部根项目模块。 它也必须是一个gradle项目,在具体的Androidbuild设情况下,你必须将每个模块configuration为“android-library”插件项目。

例如,在'MyApp'项目settings.gradle你可以试试这个:

 include 'app' include 'dagger' project(':dagger').projectDir = new File('/Users/foo/workspace/stdlib/dagger') 

你的'MyApp'build.gradle必须在相对path中反映'匕首'模块的需要Gradle方式:

 dependencies { compile project(':dagger') } 

就是这样。 对每一个你需要的外部模块重复这一步,你将有一个适当的Gradle多项目configuration。