Android gradle build:父子共享库
我们的项目结构如下:Android gradle build:父子共享库,android,android-studio,gradle,android-gradle-plugin,build.gradle,Android,Android Studio,Gradle,Android Gradle Plugin,Build.gradle,我们的项目结构如下: Project |__build.gradle |__settings.gradle |__app (android application) |__build.gradle |__libA (android library) |__libB (android library) |__libA (android library) 我的应用程序依赖于libA和libBlibB但是又取决于libA。我应该如何构建我的构建,以便app和libB共享
Project
|__build.gradle
|__settings.gradle
|__app (android application)
|__build.gradle
|__libA (android library)
|__libB (android library)
|__libA (android library)
我的应用程序依赖于libA
和libB
<代码>libB但是又取决于libA
。我应该如何构建我的构建,以便app
和libB
共享同一份libA
注意:app
、libA
和libB
都是从源代码编译的,而不仅仅是jar文件。只需使用:
Project
|__build.gradle
|__settings.gradle
|__app (android application)
|__build.gradle
|__libA (android library)
|__build.gradle
|__libB (android library)
|__build.gradle
在设置.gradle
中:
include ':app' , ':libA' , 'libB'
dependencies {
compile project(':libA')
compile project(':libB')
}
dependencies {
compile project(':libA')
}
在app/build.gradle
中:
include ':app' , ':libA' , 'libB'
dependencies {
compile project(':libA')
compile project(':libB')
}
dependencies {
compile project(':libA')
}
在libB/build.gradle
中:
include ':app' , ':libA' , 'libB'
dependencies {
compile project(':libA')
compile project(':libB')
}
dependencies {
compile project(':libA')
}
是 啊这种方法目前正在发挥作用。但它编译了两次libA。编译libA需要一些时间,将来越来越多像libB这样的lib将依赖于它。@chiraghaingradle管理它。另一个解决方案是在maven存储库中发布libA和libB,我认为gradle不会处理这个问题。我确实看到了libA的两个编译日志。在maven上发布实际上不是一种选择。我们想从源代码构建它。@ChiragJain双重编译还是双重日志?Gradle使用缓存。在settings.Gradle中,我给出了projectPath,它的工作原理如下:
project(“:libA”).projectDir=新文件(rootProject.projectDir,“../libA”)
。我可以为同一个库提供多个这样的路径吗。如果在当前文件夹中找不到,我希望它看起来更高一步。