我正在尝试缓存私有Travis CI存储库的依赖项,Travis是否有一些特定于gradle的机制,或者我是否必须缓存特定目录?
.travis.yml:
language: groovy
jdk:
- openjdk7
env:
- TERM=dumb
before_install:
- cd application
- chmod +x gradlew
script:
- ./gradlew build
Run Code Online (Sandbox Code Playgroud)
上次工作构建的相关部分:
Downloading https://services.gradle.org/distributions/gradle-2.1-bin.zip
......................................................................................................................................................................................
Unzipping /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a/gradle-2.1-bin.zip to /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a
Set executable permissions for: /home/travis/.gradle/wrapper/dists/gradle-2.1-bin/2pk0g2l49n2sbne636fhtlet6a/gradle-2.1/bin/gradle
Download https://jcenter.bintray.com/com/mycila/xmltool/xmltool/3.3/xmltool-3.3.pom
...
Run Code Online (Sandbox Code Playgroud)
会添加:
cache:
directories:
- $HOME/.gradle
Run Code Online (Sandbox Code Playgroud)
工作?也许:
cache:
directories:
- $HOME/.gradle/caches/modules-2/files-2.1
Run Code Online (Sandbox Code Playgroud)
use*_*610 17
将此添加到您的.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/
Run Code Online (Sandbox Code Playgroud)
它在Travis文档中有记录,网址为https://docs.travis-ci.com/user/languages/java/#projects-using-gradle
你必须至少缓存~/.gradle/wrapper和~/.gradle/caches,但我可能会先有自己~/.gradle.(如有必要,可以通过设置GRADLE_USER_HOME环境变量来更改后者的位置).升级到较新的Gradle版本时,缓存结构可能会发生变化,因此有时可能会使缓存无效.
PS:请不要在这里和Gradle论坛上发布双重帖(也没关系).
可能你应该添加sudo: false到你的.travis.yml,因为缓存不适用于公共存储库.它会阻止你使用sudo,setid,setgid,但它允许缓存机制!
但我发现缓存$HOME/.gradle/caches不是一个很好的变种,因为$HOME/.gradle/caches/modules-2/modules-2.lock每次构建都会更改文件,因此Travis每次都会重新打包缓存,并完全上传该缓存.对我而言,这比下载所有依赖项要慢.所以也许更好地指定别的东西比$HOME/.gradle/caches.
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |