首页 > 解决方案 > Gradle 无法解析本地 aar 依赖

问题描述

我想将自己的库集成到 Android 应用程序中。在我将它推送到远程 maven repo 之前,我想检查与本地应用程序的集成。所以我把它推到了我的mavenLocal(). Maven是通过安装的brew install maven

还有我的问题 - Gradle 无法解决对我的库的依赖。

我得到的错误只是ERROR: Failed to resolve: com.op.rlgen:0.0.1

在库中我使用maven-publish插件:

apply plugin: 'maven-publish'

publishing {
    publications {
        maven(MavenPublication) {
            groupId 'com.op'
            artifactId 'rlgen'
            version '0.0.1'
            artifact("$buildDir/outputs/aar/rlgen-release.aar")

            pom.withXml {
                // generating pom logic here
            }
        }
    }

    // For `publish` task use mavenLocal
    repositories {
        mavenLocal()
    }
}

在我的 Maven 上发布一个库,我使用: ./gradlew :rlgen:publishToMavenLocal

在以下路径中,我有 2 个文件,一个带有aar扩展名,第二个带有pom~/.m2/repository/com/op/rfgen

由于我认为问题是由于我的主应用程序中相当复杂的脚本引起的,所以我创建了一个沙箱,清晰的 Android 应用程序。

在沙盒的 gradle 中,我有:

// project level
allprojects {
    repositories {
        mavenLocal()
        google()
        jcenter()
        // also tried with
        maven {
             url "~/.m2/repository"
        }
    }
}

// app level
dependencies {
     compile('com.op.rfgen:0.0.1@aar) {
         transitive = true
     }
}

我检查 mavenLocal 是否指向正确的文件夹,看起来没问题:

// in gradle
repositories {
    println(mavenLocal().url) // file:/Users/op_user/.m2/repository/
}

使用此配置,我无法向该 aar 添加依赖项,因为:

ERROR: Failed to resolve: com.op.rlgen:0.0.1:
Affected Modules: app

谢谢你的帮助!

标签: androidmavengradle

解决方案


问题是那一行: compile('com.op.rfgen:0.0.1@aar). 应该是compile('com.op:rfgen:0.0.1@aar)……:D


推荐阅读