我有一个类似的项目设置,我的项目都在兄弟文件夹中相对于彼此:
+ 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?
答案 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')
}
对于其他语言,您必须使用该语言的语言特定支持。