簡體   English   中英

Gradle構建無法從自定義maven存儲庫獲取依賴關系

[英]Gradle build failing to get dependency from custom maven repository

我在鏈接后在BitBucket上創建了一個自定義maven倉庫。 當我嘗試使用Gradle在我的android項目中使用依賴項時,我收到以下錯誤

Executing tasks: [:app:compileDebugJava]

Configuration on demand is an incubating feature.
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom

[Fatal Error] testCommon-1.0.pom:2:10: Already seen doctype.

Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-v4/20.0.0/support-v4-20.0.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-v4/20.0.0/support-v4-20.0.0.pom

[Fatal Error] support-v4-20.0.0.pom:2:10: Already seen doctype.

Checksum missing at https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-annotations/20.0.0/support-annotations-20.0.0.pom.sha1 due to: For input string: "<!"
Download https://bitbucket.org/test/maven-repo/raw/master/repository/com/android/support/support-annotations/20.0.0/support-annotations-20.0.0.pom

[Fatal Error] support-annotations-20.0.0.pom:2:10: Already seen doctype.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
   > Could not resolve com.test.com:testCommon:1.0.
     Required by:
         SettingsAid:app:unspecified
      > Could not parse POM https://bitbucket.org/test/maven-repo/raw/master/repository/com/test/com/testCommon/1.0/testCommon-1.0.pom
         > Already seen doctype.

我已經改變了鏈接。 但是直接打開鏈接會返回校驗和。

下面是我的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'maven'
android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.test.sampleapp"
        minSdkVersion 11
        targetSdkVersion 19
    }

    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
repositories {
    mavenCentral()
    maven {
        credentials {
            username "test@gmail.com"
            password "test"
        }
        url "https://bitbucket.org/test/maven-repo/raw/master/repository/"
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.test.com:testCommon:1.0'
    compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar')
}

我不確定我在這里做錯了什么。 我也跟着這個鏈接 任何人都可以幫我解決這個問題。

更新1:

當我檢查〜.gradle文件夾時,即使在提供憑據后它也沒有登錄並保存整頁。 當我將我的repo從私有更改為public時 ,代碼開始工作。 但我不想讓我的回購公開。 如何讓gradle使用傳遞的登錄憑據?

謝謝。

我通過將repo路徑更改為:

"https://"+username+":"+password+"@bitbucket.org/test/maven-repo/raw/master/repository/"

用戶名和密碼在gradle.properties中設置。

我的團隊和我使用Bitbucket REST API解決了它,你可以在這個答案中找到更多細節: https//stackoverflow.com/a/30117276/4877779

我過去常常與這個問題作斗爭三天。 根據你的代碼,這是我的解決方案。 希望拯救你的生命。

  1. 你的maven網址錯了。 請使用bitbuckest.org的正確api。 網址格式應為https://api.bitbucket.org/1.0/repositories/team-or-user-name/prject-name/raw/branch-name 例如: https//api.bitbucket.org/1.0/repositories/yolonetltd/yolonet-mvn-repo/raw/releases/ 請注意,不要使用api.bitbucket.org/2.0,請使用api.bitbucket.org/1.0!

     repositories { mavenCentral() maven { credentials { username "xxxxx" // note, not email, use login user name please! password "xxxxx" } url "https://api.bitbucket.org/1.0/repositories/test/maven-repo/raw/master" // note, use api 1.0, do not use api 2.0! } } 
  2. 如果您的依賴項是aar格式,則應在依賴項描述之后添加@aar 依賴關閉應該如下所示。 否則gradle將拋出依賴項未找到錯誤。

     dependencies { ... compile 'com.test.com:testCommon:1.0@aar' ... } 
  3. 確保您的遠程bitbucket maven存儲庫保存完整的文件目錄,如下所示。 否則gradle也會拋出依賴未找到的錯誤。

     | ├── com │ ├── as-gradle │ │ └── demo │ │ └── localrepo │ │ ├── 1.0.0 │ │ │ ├── localrepo-1.0.0.aar │ │ │ ├── localrepo-1.0.0.aar.md5 │ │ │ ├── localrepo-1.0.0.aar.sha1 │ │ │ ├── localrepo-1.0.0.pom │ │ │ ├── localrepo-1.0.0.pom.md5 │ │ │ └── localrepo-1.0.0.pom.sha1 │ │ ├── maven-metadata.xml │ │ ├── maven-metadata.xml.md5 │ │ └── maven-metadata.xml.sha1 
add   authentication {

            basic(BasicAuthentication)
        }

        maven {
            credentials {
                username ''
                password ''
            }
            authentication {
                basic(BasicAuthentication)
            }
            url "https://bitbucket.org/USER/REPO/raw/BRANCH/"
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM