在gradle中引用子项目中的外部项目

时间:2015-05-27 23:08:34

标签: gradle android-gradle build.gradle

我有一个类似的项目设置,我的项目都在兄弟文件夹中相对于彼此:

+ mainApp
+ mylib
+ mylib2

mainApp引用我的settings.gradle中不包含以下内容的mylib库项目:

include ':app', ':mylib'
project(':mylib').projectDir=new File('..\\mylib')

然而,问题是mylib项目依赖于另一个lib - mylib2。我基本上可以做同样的事情并使用settings.gradle引用mylib2并且构建mylib工作正常。

问题是当我尝试构建mainApp时,它找不到mylib2,因为没有运行子项目的settings.gradle,只运行了root settings.gradle。因此,当mylib的build.gradle文件引用mylib2时,它找不到mylib2。

我不想从mainApp添加对mylib2的引用,我希望mylib引入mylib2。

有没有办法从mylib的build.gradle文件中引入mylib2?

1 个答案:

答案 0 :(得分:0)

您似乎对子项目有错误的理解。 每个"项目树"有一个rootProject。这个rootProject是唯一一个应该有settings.gradle的项目,它包含所有子项目。因此,如果您的所有3个项目都在一起,那么它们必须全部包含在settings.gradle中。

应添加对其他外国项目的引用作为依赖项。请注意,您只能以这种方式引用工件。

你没有说得很清楚,但似乎你想要使用这个项目" mylib"作为" mainApp"

源代码的库

如果这些是java项目,你只需添加由" mylib"生成的jar文件。到" mainApp"的编译配置:

apply plugin: 'java'
dependencies {
  compile fileTree(dir:'../myLib/build/libs', include : '**/*.jar')
}

对于其他语言,您必须使用该语言的语言特定支持。