Top Banner
Gradle Evgeny Borisov
39

Javaone 2013 moscow gradle english

Jan 26, 2015

Download

Technology

Evgeny Borisov

The English version
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Javaone 2013 moscow gradle   english

Gradle

Evgeny Borisov

Page 2: Javaone 2013 moscow gradle   english

Good to be programmer…

Page 3: Javaone 2013 moscow gradle   english
Page 4: Javaone 2013 moscow gradle   english

You start crooked, everything is crooked

Page 5: Javaone 2013 moscow gradle   english

What are the tasks of build today?

• VCS • CI scripts & different xml configurations• Dependency management• Deployment (clustering)• Unit and sanity Tests• Documentation• …

Page 6: Javaone 2013 moscow gradle   english

Grandson will not come today, he sent mail that the build failed.

Page 7: Javaone 2013 moscow gradle   english

Which build tools do you know?

Page 8: Javaone 2013 moscow gradle   english

I use…

1. Gradle2. Maven3. Ant4. Ivy5. I build with my hands…

Page 9: Javaone 2013 moscow gradle   english

Declarative & Imperative

Page 10: Javaone 2013 moscow gradle   english

Declarative & Imperative

• ANT – Imperative

• Maven - Declarative Not really

Page 11: Javaone 2013 moscow gradle   english

Maven

<build>

</build>

Page 12: Javaone 2013 moscow gradle   english

We Love you, XML

Page 13: Javaone 2013 moscow gradle   english

<build>

</build>

Page 14: Javaone 2013 moscow gradle   english

We also have two problems…

• XML - yes, DSL- no

Page 15: Javaone 2013 moscow gradle   english

Who will be today’s Chuck Norris?

Page 16: Javaone 2013 moscow gradle   english
Page 17: Javaone 2013 moscow gradle   english

Why Gradle?

• Not adopted to specific type project• Powerful DSL, which can be extended easily• Groovy• Effective build– Tasks can run in parallel – Incremental build

Page 18: Javaone 2013 moscow gradle   english

One doesn’t simply talk. Lets build some project.

Page 19: Javaone 2013 moscow gradle   english
Page 20: Javaone 2013 moscow gradle   english

Where is my print???

test { testLogging.showStandardStreams = true}

Page 21: Javaone 2013 moscow gradle   english

Build task dependency graph

Page 22: Javaone 2013 moscow gradle   english

It’s exactly like in maven

Page 23: Javaone 2013 moscow gradle   english

Not like maven at all

• You can add dependency to existing task

• You can change task behavior via it’s properties

• You can extend tasks

Page 24: Javaone 2013 moscow gradle   english

Build task dependency graph

Page 25: Javaone 2013 moscow gradle   english

I need a war!

Page 26: Javaone 2013 moscow gradle   english

Lets write a Task

1. Class MyTask extends DefaultTask2. Write a method @TaskAction3. Add it to DSL4. That is all!

Page 27: Javaone 2013 moscow gradle   english

Additional plugins

• Groovy Plugin• The Scala Plugin• The War Plugin• The Ear Plugin• The Jetty Plugin• The Eclipse Plugin• The IDEA Plugin

• AspectJ plugin• ClassLoader plugin• Exec plugin• JavaFx Plugin• Tomcat Plugin• Android Plugin• The FindBugs Plugin

Page 28: Javaone 2013 moscow gradle   english

Your own Plugin

• Why should I write my own plugin? It’s not enough to write my own tasks?

• Extend DSL. – We want declarative build!

Page 29: Javaone 2013 moscow gradle   english

Do you want plugin???

Page 30: Javaone 2013 moscow gradle   english

• How to write plugin:https://bitbucket.org/davidmc24/gradle-bintray-plugin/src/6adc1aca5ed712b8802fe6b3830b2d860d9fda88/Bintray.gradle?at=default

• Adding plugin: buildscript: apply from: 'gradle/Bintray.gradle'

• Usage:repositories { bintray.jcenter() }

Page 31: Javaone 2013 moscow gradle   english

I can’t get out of here

I deep in this ant shit

Page 32: Javaone 2013 moscow gradle   english

You love ant?

Page 33: Javaone 2013 moscow gradle   english

Migrating from ant to gradle

Page 34: Javaone 2013 moscow gradle   english

Migrating from ant

Page 35: Javaone 2013 moscow gradle   english

I can’t migrate from maven

Page 36: Javaone 2013 moscow gradle   english

Yes you can!

Page 37: Javaone 2013 moscow gradle   english

maven2gradle plugin1. Type this in your build.gradle :

apply plugin:’maven2Gradle’

2. Put this script near you pom

3. Run: gradle build

Page 38: Javaone 2013 moscow gradle   english

What to read?

• http://www.gradle.org/docs/current/userguide/userguide.html

• http://www.gradle.org/docs/current/dsl/• http://www.gradle.org/docs/current/javadoc/

Page 39: Javaone 2013 moscow gradle   english

Q&A

[email protected]