我已经调查了一段时间,可能看到这里最流行的答案与aar和transitive依赖关系有关,但不知何故,我仍然不清楚如何使这个工作。
所以:
我有给定gradle配置的android库:
apply plugin: 'android-library'
apply plugin: 'android-maven'
version = "1.0.0"
group = "com.somepackage"
buildscript {
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
classpath 'com.github.dcendents:android-maven-plugin:1.0'
}
}
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 10
}
}
repositories {
maven { url 'http://www.bugsense.com/gradle/' }
}
dependencies {
provided 'com.google.android.gms:play-services:+'
provided 'com.android.support:appcompat-v7:+'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.bugsense.trace:bugsense:3.6'
compile 'commons-net:commons-net:3.3'
}
然后我将它部署到gradle install的本地maven仓库。部署库的POM文件如下所示:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4.0.0
com.sprezzat
app
1.0.0
aar
com.bugsense.trace
bugsense
3.6
compile
commons-net
commons-net
3.3
compile
com.google.code.gson
gson
2.2.4
compile
最后使用上面的库作为依赖项来我的android应用程序的gradle配置:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
mavenLocal()
}
android {
compileSdkVersion 15
buildToolsVersion "19.0.2"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
}
dependencies {
compile 'com.google.android.gms:play-services:+'
compile 'com.android.support:appcompat-v7:+'
compile 'com.somepackage:LIBRARY_NAME:1.0.0@aar'
}
在手机上部署应用程序后,对于属于我的android库的编译依赖项的类,我得到了gradle dependencies。
使用gradle dependencies检查我的Android应用程序依赖项:
apk - Classpath packaged with the compiled main classes.
+--- com.google.android.gms:play-services:+ -> 4.3.23
| \--- com.android.support:support-v4:19.0.1 -> 19.1.0
+--- com.android.support:appcompat-v7:+ -> 19.1.0
| \--- com.android.support:support-v4:19.1.0
\--- com.somepackage:LIBRARY_NAME:1.0.0
根据上面的树,没有检测到所有传递依赖性。 问题在哪里以及如何正确完成?