Fly*_*rse 9 android gradle maven aar
这是我的开发项目结构:
projectFolder
|
+--App
|
+--MyLib
|
+--Libraries
|
+--LibA
MyLib依赖于LibA,我将MyLib打包为AAR并将其发布到Maven 仓库,但当我将MyLib作为远程aar依赖项包含在另一个项目(TestProj)中时,我得到了构建错误(无法解析LibA的依赖关系,LibA不包含在MyLib的发布中),这是TestProj的 app文件夹中的build.gradel :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile ('xxx.xxxxxx:yyyyy:1.0-SNAPSHOT@aar'){
transitive = true
}
}
Run Code Online (Sandbox Code Playgroud)
这是MyLib的build.gradle :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Libraries:LibA')
}
Run Code Online (Sandbox Code Playgroud)
我如何能释放MyLib中与力霸已经打包在AAR?
自己回答问题。最后我改变了的build.gradle中MyLib中来:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
provided project(':Libraries:LibA')
}
Run Code Online (Sandbox Code Playgroud)
因此LibA将仅用于MyLib的构建过程中,TestProj将不再在编译时要求LibA依赖项。注意,这可能会在运行时导致NoClassDefFoundError,因此您必须告诉使用您的库的人在他们的项目的build.gradle中包括LibA自己。
最初,我在寻找一种用MyLib打包LibA的方法,但这似乎很困难。
看到这个问题:Android Studio如何打包来自多个库项目的单个AAR?