2017-05-29 53 views
1

我正在使用Travis CI连接到我的github帐户。构建总是成功的,但是它们需要很长时间,因为travis将继续为每个构建下载相同的依赖关系。即下载通常需要5分钟以上,但建筑物只需要不到一分钟的时间。在Travis上有没有配置可以避免这种依赖关系的下载?构建Android总是为每个构建下载依赖关系

下面是什么被每次下载一个片段:

Starting a Gradle Daemon (subsequent builds will be faster) 

Download https://maven.google.com/com/android/tools/build/gradle/3.0.0-alpha2/gradle-3.0.0-alpha2.pom 
Download https://jcenter.bintray.com/com/dicedmelon/gradle/jacoco-android/0.1.1/jacoco-android-0.1.1.pom 
Download https://maven.google.com/com/android/tools/build/gradle-core/3.0.0-alpha2/gradle-core-3.0.0-alpha2.pom 
Download https://jcenter.bintray.com/org/codehaus/groovy/groovy-all/2.4.4/groovy-all-2.4.4.pom 

我travis.yml文件:

language: android 

jdk: oraclejdk8 

env: 
    global: 
    - ANDROID_TARGET=android-25 
    - ANDROID_ABI=armeabi-v7a 

android: 
    components: 
    - tools 
    - platform-tools 
    - build-tools-25.0.2 
    - android-25 
    - extra-android-m2repository 
    - sys-img-${ANDROID_ABI}-${ANDROID_TARGET} 

licenses: 
    - android-sdk-license-.+ 
    - '.+' 

script: 
    - ./gradlew --daemon build jacocoTestReport 

after_success: 
    - bash <(curl -s https://codecov.io/bash) 

非常感谢您的任何建议,

+1

CI的一部分内容是每次都要做一次干净的构建,以确保软件可以构建。围绕某种方式保持依赖性会使目标失败。 –

+1

[Redownloading dependencies](https://stackoverflow.com/q/13565082/1009132)'./gradlew build --refresh-dependencies'与[clean build](https:// stackoverflow)不一样。 com/q/29028748/1009132)'./gradlew clean build'。 – albodelu

回答

1

您可以使用the cache以避免这些下载,但为Android SDK提供it's not recommended

它的记录here的摇篮依赖关系:

依赖缓存的摇篮一个特点意味着,以避免 上传缓存后,每建设需要以下 行添加到您的.travis.yml:

before_cache: 
    - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock 
    - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ 
cache: 
    directories: 
    - $HOME/.gradle/caches/ 
    - $HOME/.gradle/wrapper/ 

您可以添加其他的目录缓存,但large files不推荐。