简体   繁体   English

Gradle无法解决本地aar依赖性

[英]Gradle cannot resolve local aar dependency

I wanted to integrate my own library to an Android application. 我想将自己的库集成到Android应用程序中。 Before I push it on remote maven repo I want to check the integration with an application locally. 在将其推送到远程Maven存储库之前,我想检查与本地应用程序的集成。 So I've pushed it to my mavenLocal() . 所以我将其推送到了我的mavenLocal() Maven was installed via brew install maven Maven是通过brew install maven

And there is my problem - Gradle cannot resolve dependency to my library. 还有我的问题-Gradle无法解决对我的库的依赖。

Error I get is just ERROR: Failed to resolve: com.op.rlgen:0.0.1 我得到的错误只是ERROR: Failed to resolve: com.op.rlgen:0.0.1

In library I use maven-publish plugin: 在库中,我使用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()
    }
}

to publish a library on my maven I use: ./gradlew :rlgen:publishToMavenLocal 在我的Maven上发布库,我使用: ./gradlew :rlgen:publishToMavenLocal

In following path i have 2 files, one with aar extension, the second one with pom : ~/.m2/repository/com/op/rfgen 在下面的路径中,我有2个文件,一个具有aar扩展名,第二个具有pom~/.m2/repository/com/op/rfgen

As I thought the problem is caused because of quite complicated scripts in my main app, I created a sandbox, clear Android Application. 我认为问题是由于主应用程序中的脚本非常复杂而引起的,所以我创建了一个沙盒,清晰的Android应用程序。

In sandbox's gradle I have: 在沙盒的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
     }
}

I check if mavenLocal points to proper folder and it seems ok: 我检查mavenLocal是否指向正确的文件夹,看起来还可以:

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

And with this configuration I cannot add dependency to that aar because of: 使用这种配置,由于以下原因,我无法向该aar添加依赖项:

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

Thanks for your help! 谢谢你的帮助!

The problem was that line: compile('com.op.rfgen:0.0.1@aar) . 问题在于那一行: compile('com.op.rfgen:0.0.1@aar) Should be... compile('com.op:rfgen:0.0.1@aar) ... :D 应该是... compile('com.op:rfgen:0.0.1@aar) ...:D

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM