the future of gradle - the ultimate build system
DESCRIPTION
Speaker: Hans Dockter More Groovy Track We are convinced that Gradle is already the best available enterprise build system. Yet we are far from done. We have finally the R&D bandwidth to deeply improve Gradle in the areas where it lacks. We also have the bandwidth to contribute some fundamental innovation to the domain of build and continuous delivery. All this will bring Gradle much closer to our vision of Gradle being the ultimate build system. We start by giving an overview of where Gradle is currently in the build system market when it comes to features and adoption. We will then talk about the next generation multi-platform dependency management. A dependency management that can fully capture the requirements of Android, JavaScript and the native domain as well as to improve the dependency management for the Java world. We will talk about how Gradle will dramatically improve the performance by introducing global caches and other optimizations. Finally we will talk about the new Gradle extendability model and its upcoming native and Javascript support.TRANSCRIPT
The Future of Gradle
Hans Dockter Founder Gradle CEO Gradleware @gradleware, @hans_d
<momentum>
2 Million
0
20
40
60
80
100
1/7/075/6/079/2/071/6/085/4/089/7/081/4/095/3/099/6/091/3/105/2/109/5/101/2/115/1/119/4/111/1/125/6/129/2/121/6/135/5/139/1/131/5/14
Gradle Cloudera
Google Trends
“Over the past twelve months, 80 developers contributed new code to Gradle. This is one of the
largest open-source teams in the world …”
www.ohloh.net
“Very High Activity”
“Over the entire history of the project, 159 developers have contributed.”
Community Gradle Plugins
200+
© Gradleware, confidential – Do not distribute
5All rights reserved. 2014 © ZeroTurnaround OÜ
Sample population of 2164 Java professionals, sample error 2.1%
“When did Gradle get so hot?” TSS 6/9/2014
</momentum>
<Gradle 2.0>
<Performance>
large dependency graph, clean buildlarge dependency graph, up-to-date build
25 small projects, clean build25 small projects, up-to-date build
large dependency graph, dependency reportlarge dependency graph, eclipse model
25 small projects, eclipse model100 projects, first build
large dependency graph, idea model25 small projects, idea model
junit executiontestng execution
junit execution with lots of test logging outputtestng execution with lots of test logging output
0 17.5 35 52.5 70
Performance Improvements Gradle 1.0 to 2.0 [%]
large dependency graph, clean buildlarge dependency graph, up-to-date build
25 small projects, clean build25 small projects, up-to-date build
large dependency graph, dependency reportlarge dependency graph, eclipse model
25 small projects, eclipse modellarge dependency graph, idea model
25 small projects, idea modeljunit execution
testng executionjunit execution with lots of test logging output
testng execution with lots of test logging output
0 20 40 60 80
Reduced Memory Usage Gradle 1.0 to 2.0 [%]
Configure On Demand
Parallelization per Project
</performance>
Dependency Management
shouldRunAfter & mustRunAfter
Android
Native
</Gradle 2.0>
<state of the industry>
XXXXL
“more cOmplex”
SaaS & Mobile
© Gradleware, confidential – Do not distribute
0
8
15
23
30
2011 2013
Release cycle (days) Two Releases per
day
15 daysInventory Term 0.5 days
30
</state of the industry>
<Roadmap>
<New Configuration Model>
0
Next Generation Extendability
Fundamentally Parallelizable & Distributable
Compatibility?
</New Configuration Model>
Component Model & Variant based Dependency Management
!!jvm {! libraries {! myLib {! target java("6")! target java("8")! }! }!}!!nativeRuntime {! libraries {! myNativeLib! }!}!
Native Support
Cache Everything
Tooling
</Roadmap>
Gradle Plugin Ecosystem
Netflix Nebula
Gradle Plugin Portal
Thank You
Hans Dockter Founder Gradle CEO Gradleware @gradleware, @hans_d