# Gravis-CI: reliable multiplatform Java / Gradle builds on Travis CI

**URL:** <https://travis-ci.community/t/gravis-ci-reliable-multiplatform-java-gradle-builds-on-travis-ci/4073>\
**Category:** Java\
**Created:** [July 4, 2019, 9:46am UTC](https://travis-ci.community/t/gravis-ci-reliable-multiplatform-java-gradle-builds-on-travis-ci/4073 "2019-07-04T09:46:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![DanySK](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/danysk/32/1399_2.png) [@DanySK](https://travis-ci.community/u/DanySK)\
**Post date:** [July 4, 2019, 9:46am UTC](https://travis-ci.community/t/gravis-ci-reliable-multiplatform-java-gradle-builds-on-travis-ci/4073/1 "2019-07-04T09:46:24Z")

</div>

TL;DR - [here](https://github.com/DanySK/Gravis-CI)

Hi,  
I created a set of scripts (for now just two, they may grow in future if I need something more or if someone else contributes) devoted to work around the continuous issues we are experiencing with downloading JDK versions due to the abuse of the great `install-jdk.sh` script.  
As @sormuras suggested in another topic, Jabba could be a more reliable method for installing the JDK. Gravis does so. It works around the Travis Java support (in fact, I recommend using a `language: bash` build), installs the JDK selected from the Jabba archive, works around Travis bugs / limitations, and performs the operations.  
Instructions are available [here](https://github.com/DanySK/Gravis-CI), [this](https://travis-ci.org/DanySK/jirf) is the first project where I used it.

Enjoy

---

<div class="post-metadata">

**Author:** ![sormuras](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/sormuras/32/2770_2.png) [@sormuras](https://travis-ci.community/u/sormuras)\
**Post date:** [July 4, 2019, 11:32am UTC](https://travis-ci.community/t/gravis-ci-reliable-multiplatform-java-gradle-builds-on-travis-ci/4073/2 "2019-07-04T11:32:00Z")

</div>

All green now! [https://travis-ci.org/DanySK/jirf/builds/554187772](https://travis-ci.org/DanySK/jirf/builds/554187772) ✔

Now, Travis CI should map their `jdk: <key>` configuration values to your Jabba-based script(s).  
Does Jabba support `-ea` versions from [jdk.java.net](http://jdk.java.net)? If not, those early-access build can still be served via `install-jdk.sh`.

---

<div class="post-metadata">

**Author:** ![sormuras](https://sea1.discourse-cdn.com/flex015/user_avatar/travis-ci.community/sormuras/32/2770_2.png) [@sormuras](https://travis-ci.community/u/sormuras)\
**Post date:** [July 11, 2019, 8:12am UTC](https://travis-ci.community/t/gravis-ci-reliable-multiplatform-java-gradle-builds-on-travis-ci/4073/3 "2019-07-11T08:12:16Z")

</div>

@BanzaiMan

If I were to decided for Travis CI, I’d route all **non-ea** and all **non-GA** requests to Gravis-CI/Jabba.

`jdk: openjdk-ea` may still be handled by `install-jdk.sh`.  
`jdk: openjdk${GA}`, with `GA=12` as of today, `GA=13` in September, and so on could also be handled by `install-jdk.sh`
