2017-05-29 1 views
1

Ich benutze Travis CI mit ist mit meinem Github-Konto verbunden. Die Builds sind immer erfolgreich, aber sie dauern sehr lange, da Travis die gleichen Abhängigkeiten für jeden Build herunterlädt. Das Herunterladen dauert normalerweise mehr als 5 Minuten, aber das Erstellen dauert nur weniger als eine Minute. Gibt es eine Konfiguration auf Travis, um das Herunterladen von Abhängigkeiten zu vermeiden?Building Android lädt immer Abhängigkeiten für jeden Build

Unten finden Sie ein Ausschnitt von dem, was jedes Mal heruntergeladen wird:

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 

Meine travis.yml Datei:

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) 

Vielen Dank für Ihre Anregungen,

+1

Teil eines CI ist es, jedes Mal einen sauberen Build zu erstellen, um sicherzustellen, dass die Software erstellt werden kann. Abhängigkeiten zu halten, vereitelt den Zweck. –

+1

[Redownloading-Abhängigkeiten] (https://Stackoverflow.com/q/13565082/1009132) './gradlew build --refresh-dependencies' ist nicht dasselbe wie ein [clean build] (https: // stackoverflow. com/q/29028748/1009132) './gradlew sauberer Aufbau'. – albodelu

Antwort

1

Sie the cache verwenden können um diese Downloads zu vermeiden, aber it's not recommended für Android SDK.

Es dokumentiert ist here für Gradle Abhängigkeiten:

Eine Besonderheit der Abhängigkeit Caching in Gradle bedeutet, dass Hochladen des Cache zu vermeiden, nachdem jeder bauen Sie folgende Zeilen zu Ihrer .travis.yml hinzufügen müssen:

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/ 

Sie können andere Verzeichnisse in den Cache hinzufügen, aber large files sind nicht zu empfehlen.

Verwandte Themen