嵌套的aar依赖项不起作用

时间:2016-11-17 03:05:32

标签: android maven aar gradle-dependencies

为了简化我将要调用的库我正在使用library_a.aar和library_b.aar。

这是我面临的情景。 library_a是构建并推送到maven_repository,这里没有问题。 library_b依赖于library_a并添加到library_b,如下所示:

repositories {
    maven {
        credentials {
            username USERNAME
            password PASSWORD
        }
        url "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases"
    }
}

dependencies {
    ...
    compile 'package:library_a:1.0'
    ...
}

library_b构建时没有错误并上传到maven_repository。

现在我的应用程序依赖于我需要添加的library_b,方法是提供(如上所述)存储库以及凭据。

我面临的第一个问题是,为了在我的项目中编译library_b,需要按以下方式编译:

dependencies {
    ...
    compile 'package:library_b:1.0@aar'
    ...
}

我必须添加@aar,否则gradle将无法识别它,但我没有必要使用library_a。

第二个问题是,当我构建应用程序时,我收到警告,它无法找到对library_a中可用类的引用。我在这里错过了什么?我确实尝试将transitive = true添加到library_a

dependencies {
        ...
        compile ('package:library_a:1.0') {
            transitive = true;
        }
        ...
}

但绝对没有效果。我确实检查了pom文件,它包含了正确的依赖项。 可能是我正在做的事情不是gradle支持我必须在我的应用程序中编译library_a和library_b吗?

1 个答案:

答案 0 :(得分:0)

听起来你的maven repo只包含aar个文件但没有或错误pom个文件。

您是否正在使用以下gradle插件和uploadArchives gradle任务才能将aar上传到您的maven存储库? https://github.com/dcendents/android-maven-gradle-plugin

为您的aar s尝试此gradle片段:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
    }
}

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

android { ... }

dependencies { ... }

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "https://api.bitbucket.org/1.0/repositories/COMPANY/maven_repository/raw/releases") {
                authentication(userName: USERNAME, password: PASSWORD)
            }
        }
    }
}

然后使用uploadArchives gradle任务