我有一些我在maven资源库上托管的Android库项目。所有这些库都是根库项目的子项目。我试图做到这一点,所以我的根库项目可以收集所有子项目的源和输出,作为单个库分发。
我已将根项目和子项目成功发布到maven,但是当发布根项目时,它会在打包aar时排除子项目。
结构:
Root
\--subproject1
\--subproject2
这是我的gradle片段:
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
}
由于dependsOn
中的sourceJar
,我的子项目会在此根项目的同时发布到我的maven存储库(这是我想要的并且很好)。但是,根项目在打包时不会将这些子项目作为根AAR的一部分包含在内。
如何配置我的根项目以打包其中的所有子项目?
答案 0 :(得分:1)
我能够从Github使用这个库找到解决方案:
https://github.com/adwiv/android-fat-aar
该库允许您在打包最终库时嵌入子项目,如下所示(注意embedded
表示法):
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
embedded project(':subproject1')
embedded project(':subproject2')
}