The Future of Gradle - The Ultimate Build System

Post on 02-Jul-2015

1,105 views 2 download

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