我在 Maven 存储库中托管了一些 Android 库项目。所有这些库都是根库项目的子项目。我正在努力做到这一点,以便我的根库项目可以收集所有子项目的源和输出,以作为单个库分发。
我已经成功将根项目和子项目发布到maven,但是当发布根项目时,它在打包aar 时排除了子项目。
结构:
Root
\--subproject1
\--subproject2
这是我的 gradle fragment :
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':subproject1')
compile project(':subproject2')
}
configurations {
published
}
subprojects.each { subproject -> evaluationDependsOn(subproject.path)}
task sourceJar(type: Jar) {
dependsOn subprojects.tasks['sourceJar']
subprojects.each { subproject ->
from subproject.configurations.published.allArtifacts.files.collect {
zipTree(it)
}
}
classifier "sources"
}
artifactoryPublish {
dependsOn sourceJar
}
artifacts {
published sourceJar
}
由于 sourceJar
中的 dependsOn
,我的子项目与此根项目同时发布到我的 maven 存储库(这是我想要的并且很好)。然而,根项目在打包时不会将这些子项目作为根 AAR 的一部分包含在内。
如何配置我的根项目以打包其中的所有子项目?
最佳答案
我能够使用来自 Github 的这个库找到解决方案:
https://github.com/adwiv/android-fat-aar
库将允许您在打包最终库时嵌入子项目,就像这样(注意 embedded
符号):
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
embedded project(':subproject1')
embedded project(':subproject2')
}
关于android - 如何用根库打包子项目库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760366/