簡體   English   中英

如何在 build.gradle 中包含多個存儲庫?

[英]How to include multiple Repositories in build.gradle?

Android Studio 不允許我構建它。 它說沒有找到 com.mixpanel.blahblahblah 。 com.mixpanel.blahblahblah 來自 mavenCentral() 我知道問題是因為它不識別 mavenCentral() 因為它只識別另一個 repo。 我怎樣才能包括兩者並使這個項目工作?

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

buildscript {
    repositories {
        maven { url 'http://download.crashlytics.com/maven' }
    }

    dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}


repositories {
    maven { url 'http://download.crashlytics.com/maven' }
    mavenCentral()
}


android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "co.dilmile.dilmile"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.parse.bolts:bolts-android:1.1.2'
    compile 'com.loopj.android:android-async-http:1.4.6'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.facebook.android:facebook-android-sdk:3.20.0'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'org.roboguice:roboguice:3.+'
    compile 'com.google.code.findbugs:jsr305:1.3.9'
    provided 'org.roboguice:roboblender:3.+'
    compile 'com.crashlytics.android:crashlytics:1.+'
    compile 'com.mixpanel.android:mixpanel-android:4.5.3'
}

我認為您應該將 maven central 添加到您的 buildscript 存儲庫中。 我有這樣的並且沒有問題:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }
    }
...
}

allprojects {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }
    }
}

編輯:我相信你的 gradle 文件應該是

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

buildscript {
    repositories {
        maven { url 'http://download.crashlytics.com/maven' }
        mavenCentral()
    }

    dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}


repositories {
    maven { url 'http://download.crashlytics.com/maven' }
    mavenCentral()
}


android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "co.dilmile.dilmile"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.parse.bolts:bolts-android:1.1.2'
    compile 'com.loopj.android:android-async-http:1.4.6'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.facebook.android:facebook-android-sdk:3.20.0'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'org.roboguice:roboguice:3.+'
    compile 'com.google.code.findbugs:jsr305:1.3.9'
    provided 'org.roboguice:roboblender:3.+'
    compile 'com.crashlytics.android:crashlytics:1.+'
    compile 'com.mixpanel.android:mixpanel-android:4.5.3'
}

由於現在 Android Studio 使用 jcenter 而不是 maven,您應該通過將 mavenCentral 更改為 jcenter 來遷移存儲庫

buildscript {
    repositories {
        //old
        //mavenCentral()
        //new
        jcenter()
        maven { url 'http://download.crashlytics.com/maven' }
    }
...
}

allprojects {
    repositories {
        //old
        //mavenCentral()
        //new
        jcenter()
        maven { url 'http://download.crashlytics.com/maven' }
    }
}

jcenter 比 mavenCentral 更完整更快

jcenter 將鏡像 mavenCentral 存儲庫,因此如果您遇到 mavenCentral 問題,您可以使用 jcenter。

並盡量避免在聲明依賴版本號時使用 + 。 也可能有問題。

最近寫了一個依賴管理工具,可以找出哪些依賴已經過時了,大家可以試試。

https://github.com/Jintin/andle

用這個

allprojects {
    repositories {
        maven {
            url "http://download.crashlytics.com/maven" 
            artifactUrls "https://repo1.maven.org/maven2/"     // <- Link to Central Maven
            artifactUrls "https://jcenter.bintray.com/"      // <- Link to jcenter
        }
    }
}

暫無
暫無

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

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