Javaone 2013 moscow gradle

44
Gradle Евгений Борисов

description

 

Transcript of Javaone 2013 moscow gradle

Page 1: Javaone 2013 moscow gradle

Gradle

Евгений Борисов

Page 2: Javaone 2013 moscow gradle

О себе…

• Сингальтон не надо писать! Оставьте это Спрингу.

• Его надо пить!

Page 3: Javaone 2013 moscow gradle

Хорошо быть програмистом!

Page 4: Javaone 2013 moscow gradle
Page 5: Javaone 2013 moscow gradle

Пол дня возился чтобы

скомпилировать

Правильно, а теперь еще пол дня будешь билд делать

Page 6: Javaone 2013 moscow gradle

Начнешь криво, все будет криво

Page 7: Javaone 2013 moscow gradle

Что сегодня входит в билд?

• VCS

• CI scripts & different xml configurations

• Dependency management

• Deployment (clustering)

• Unit and sanity Tests

• Documentation

• …

Page 8: Javaone 2013 moscow gradle

Внучок не придет сегодня, мэйл прислал… У него билд падает

Page 9: Javaone 2013 moscow gradle

Какие есть инструменты стройки?

Page 10: Javaone 2013 moscow gradle

Я использую:

1. Ант

2. Грэйдл

3. Мавен

4. Айви

5. Я все делаю руками

Page 11: Javaone 2013 moscow gradle

Декларативная & Императивная

Page 12: Javaone 2013 moscow gradle

Декларативная и Императивная

• ANT – императивный

• Maven - декларативный Не совсем…

Page 13: Javaone 2013 moscow gradle

Maven

<build>

</build>

Page 14: Javaone 2013 moscow gradle

Мы любим тебя, XML

Page 15: Javaone 2013 moscow gradle

<build>

</build>

Page 16: Javaone 2013 moscow gradle

Чей билд лучше?

А мой билд еще и на машинке умеет…

Page 17: Javaone 2013 moscow gradle

У нас тоже две беды…

• XML-ы и отсутсвие DSL

Page 18: Javaone 2013 moscow gradle

И кто сегодня Чак Норрис?

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

Чем gradle хорош?

• Нет привязки к конкретному типу проекта

• Мощный DSL, которые легко расширять

• Groovy

• Эффективность билда

– таски могут бежать параллельно

– Инкрементальная сборка

Page 21: Javaone 2013 moscow gradle

Нельзя просто так говорить! Давайте немножечко побилдим…

Page 22: Javaone 2013 moscow gradle
Page 23: Javaone 2013 moscow gradle

А почему не видно того, что печатает

тест?

test { testLogging.showStandardStreams = true }

Page 24: Javaone 2013 moscow gradle

Build task dependency graph

Page 25: Javaone 2013 moscow gradle

Так ведь это как в Мавене!!!

Page 26: Javaone 2013 moscow gradle

Совсем нет…

• Можно добавить / убрать depency к существуещему таску

• Можно добавить поведение

• Можно изменить настройки таска

Page 27: Javaone 2013 moscow gradle

Build task dependency graph

Page 28: Javaone 2013 moscow gradle

Мне нужен WAR! Я понятно объясняю?

Page 29: Javaone 2013 moscow gradle

Давайте напишем свой Task

1. Class MyTask extends DefaultTask

2. Прописать метод @TaskAction

3. Добавить его в DSL

4. Всё!

Page 30: Javaone 2013 moscow gradle

Какие еще есть плагины?

• 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 31: Javaone 2013 moscow gradle

Как написать свой Plugin

• Зачем писать свои плагины, разве мало того, что можно писать свои таски?

• Чтобы расширять DSL.

– Мы хотим декларативный БИЛД!

Page 32: Javaone 2013 moscow gradle

Хочу плагин!!! Что делать?

Page 34: Javaone 2013 moscow gradle

Не пора ли переходить на Грэйдл?

Page 35: Javaone 2013 moscow gradle

Вспомните молодость. Когда то мы не боялись новых технологий…

Page 36: Javaone 2013 moscow gradle

Мне из этого болота не вылезти…

Я погряз в Анте капитально…

Page 37: Javaone 2013 moscow gradle

Всем кто любит ант…

Page 38: Javaone 2013 moscow gradle

Как перейти с Анта на Грэйдл

Page 39: Javaone 2013 moscow gradle

Как перейти с Анта

Page 40: Javaone 2013 moscow gradle

С мавена так не получится…

Page 41: Javaone 2013 moscow gradle

Получится получится

Page 42: Javaone 2013 moscow gradle

maven2gradle plugin

Напишите это в вашем build.gradle : apply plugin:’maven2Gradle’ Положите этот скрипт туда где pom Запустите gradle build

Page 43: Javaone 2013 moscow gradle

А что почитать?

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

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

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

Page 44: Javaone 2013 moscow gradle

Вопросы и Ответы

• Ваши вопросы, поделки и рисунки присылайте по адресу: [email protected]