Android:如何让gradle让特定的依赖关系脱机而其他人在线?

时间:2018-04-14 11:16:14

标签: android android-studio gradle

我有一些不需要每次Gradle Sync更新的依赖项,所以我需要Gradle不要从互联网上更新它并仅使用缓存版本像工作离线模式,并且还有其他想要在线更新它们的依赖项。

我尝试增加缓存持续时间并使用了更改属性,但是当我将工作时间与工作离线模式进行比较时,这对我没有帮助。

例如,我需要Gradle下载support-v4,并强制Gradle使用appcompat-v7的离线缓存版本,即使不在线检查校验和。

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation ('com.android.support:appcompat-v7:25.3.1') {
        changing = false
    }
    implementation ('com.android.support:support-v4:25.3.1') {
        changing = true
    }
}

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 1209600, 'seconds'
}

有没有人有更好的主意? 正常Gradle同步需要4分钟,离线模式只需50秒

1 个答案:

答案 0 :(得分:0)

有可能做到。您只需要知道下载的依赖项的位置。知道目录位置后,更改项目的build.gradle,如下所示:

    buildscript {

        repositories {
            maven { url uri('<location of downloaded dependancy>') }
            google()
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.0'
        }
    }

allprojects {
    repositories {
        maven { url uri('<location of downloaded dependancy>') }
        google()
        jcenter()
    }
}

这将强制gradle在本地检查依赖关系,然后再在线检查。