我正在构建android库项目,它依赖于另一个内部库项目。
我想知道是否有一种方法可以打包一个aar库,其中已经包含了内部库。我只想与我的应用程序开发人员共享一个aar库包。
这就是我的build.gradle文件目前的样子,但目前它们生成单独的aar文件,这两个文件都需要包含在应用程序的build.gradle中。由于另一家公司正在构建应用程序,我们需要与他们共享最终的aar文件,而不是完整的库项目。
-----内部库------>>>>>>>>>>
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
}
-----外部的--------
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
}
dependencies {
compile 'com.android.support:support-v4:18.0.0'
compile project(':internalLib')
}
2条答案
按热度按时间enyaitl31#
没有一种机制来组合库。这有点复杂,因为您可能希望控制哪些依赖项被合并(例如,您可能不希望在其中包含support-v4)。此外,还需要合并资源和android清单。
此时,除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中有strings_a.xml,在另一个lib中有strings_b.xml),否则无法轻松地破解某些内容。通过这种方式,您可以通过将两个res文件夹复制到同一位置来“合并”这两个res文件夹(而不是在android res级别进行合并)。
对于清单来说,它会更复杂,但是对于一些自定义代码是可行的。
提供一个内置的机制,这是我们非常低的优先级,所以不要指望它在短期内。
xriantvc2#
因此,您必须在maven上单独上传每个库,并在父库模块中使用它的实现,直到主库模块。只有在maven上发布主库时,才会包含所有子依赖项。