Gradle: 下载包含的aar库的依赖
Gradle: download Dependencies of included aar-library
我写了一个库项目 cameraBarcodeScanner
,它内置在一个 aar 文件中。该库在其 build.gradle 中定义了以下依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.google.zxing:core:3.2.1'
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
}
我在这样的测试应用程序中使用该库:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar')
}
Gradle 找到应用程序并能够构建它。但是,在运行时,android 无法找到位于 zxing-android-embedded
中的 类。在我看来,gradle 没有下载库项目的依赖项。
我也试过:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar'){
transitive = true
}
但这也无济于事。我是否必须以某种方式公开库的依赖项?您将如何使用库并 gradle 下载其依赖项?
提前致谢!
aar 文件 不包含嵌套(或 transitive)依赖关系 并且没有 pom描述库使用的依赖项的文件。
这意味着,如果您使用 flatDir
存储库导入 aar 文件,您还必须在项目中指定依赖项。
您应该使用 maven 存储库(您必须在私有或 publicmaven 存储库中发布该库),您不会遇到同样的问题。
在这种情况下,gradle 使用包含依赖项列表的 pom 文件下载依赖项。
我写了一个库项目 cameraBarcodeScanner
,它内置在一个 aar 文件中。该库在其 build.gradle 中定义了以下依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.google.zxing:core:3.2.1'
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
}
我在这样的测试应用程序中使用该库:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar')
}
Gradle 找到应用程序并能够构建它。但是,在运行时,android 无法找到位于 zxing-android-embedded
中的 类。在我看来,gradle 没有下载库项目的依赖项。
我也试过:
dependencies {
compile(name: 'cameraBarcodeScanner-release', ext: 'aar'){
transitive = true
}
但这也无济于事。我是否必须以某种方式公开库的依赖项?您将如何使用库并 gradle 下载其依赖项?
提前致谢!
aar 文件 不包含嵌套(或 transitive)依赖关系 并且没有 pom描述库使用的依赖项的文件。
这意味着,如果您使用 flatDir
存储库导入 aar 文件,您还必须在项目中指定依赖项。
您应该使用 maven 存储库(您必须在私有或 publicmaven 存储库中发布该库),您不会遇到同样的问题。
在这种情况下,gradle 使用包含依赖项列表的 pom 文件下载依赖项。