SlideShare a Scribd company logo
Gradle
Евгений Борисов
О себе…
• Сингальтон
не надо
писать!
Оставьте
это Спрингу.
• Его надо
пить!
Хорошо быть програмистом!
Javaone 2013 moscow gradle
Пол дня возился
чтобы
скомпилировать
Правильно, а теперь еще пол
дня будешь билд делать
Начнешь криво, все будет криво
Что сегодня входит в билд?
• VCS
• CI scripts & different xml configurations
• Dependency management
• Deployment (clustering)
• Unit and sanity Tests
• Documentation
• …
Внучок не придет
сегодня, мэйл
прислал…
У него билд падает
Какие есть инструменты стройки?
Я использую:
1. Ант
2. Грэйдл
3. Мавен
4. Айви
5. Я все делаю руками
Декларативная & Императивная
Декларативная и Императивная
• ANT – императивный
• Maven - декларативный Не совсем…
Maven
<build>
</build>
Мы любим тебя, XML
<build>
</build>
Чей билд лучше?
А мой билд еще и на
машинке умеет…
У нас тоже две беды…
• XML-ы и отсутсвие DSL
И кто сегодня Чак Норрис?
Javaone 2013 moscow gradle
Чем gradle хорош?
• Нет привязки к конкретному типу проекта
• Мощный DSL, которые легко расширять
• Groovy
• Эффективность билда
– таски могут бежать параллельно
– Инкрементальная сборка
Нельзя просто так говорить!
Давайте немножечко побилдим…
Javaone 2013 moscow gradle
А почему не
видно того,
что печатает
тест?
test {
testLogging.showStandardStreams = true
}
Build task dependency graph
Так ведь это как в Мавене!!!
Совсем нет…
• Можно добавить /
убрать depency к
существуещему таску
• Можно добавить
поведение
• Можно изменить
настройки таска
Build task dependency graph
Мне нужен WAR!
Я понятно объясняю?
Давайте напишем свой Task
1. Class MyTask extends DefaultTask
2. Прописать метод @TaskAction
3. Добавить его в DSL
4. Всё!
Какие еще есть плагины?
• 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
Как написать свой Plugin
• Зачем писать свои плагины, разве мало
того, что можно писать свои таски?
• Чтобы расширять DSL.
– Мы хотим декларативный БИЛД!
Хочу плагин!!! Что делать?
• Как писать плагин:
https://bitbucket.org/davidmc24/gradle-
bintray-
plugin/src/6adc1aca5ed712b8802fe6b3830b2d
860d9fda88/Bintray.gradle?at=default
• Добавить:
buildscript: apply from: 'gradle/Bintray.gradle'
• Юзить:
repositories { bintray.jcenter() }
Не пора ли переходить на Грэйдл?
Вспомните молодость. Когда то мы
не боялись новых технологий…
Мне из этого болота не вылезти…
Я погряз в Анте
капитально…
Всем кто любит ант…
Как перейти с Анта на Грэйдл
Как перейти с Анта
С мавена так не получится…
Получится получится
maven2gradle plugin
Напишите это в вашем build.gradle :
apply plugin:’maven2Gradle’
Положите этот скрипт туда где pom
Запустите gradle build
А что почитать?
• http://www.gradle.org/docs/current/userguid
e/userguide.html
• http://www.gradle.org/docs/current/dsl/
• http://www.gradle.org/docs/current/javadoc/
Вопросы и Ответы
• Ваши вопросы, поделки и рисунки 
присылайте по адресу:
bsevgeny@gmail.com

More Related Content

PDF
мифы о спарке
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
PPTX
Angular vs Angular 2 vs React. Сергей Александров
PDF
Иван Крутов - Автоматизация сборки Java-проекта
PDF
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PPTX
Мастер класс- Maven + Jenkins
мифы о спарке
Gradle. Новый уровень автоматизации для Android
Григорий Петров "WebRTC в мобильных приложениях при помощи React Native"
Angular vs Angular 2 vs React. Сергей Александров
Иван Крутов - Автоматизация сборки Java-проекта
Любовь Поволоцкая_Сборка Android-приложений с помощью Gradle
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Мастер класс- Maven + Jenkins

What's hot (20)

PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
PPTX
Gradle. Новый уровень автоматизации для Android
PDF
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
PDF
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
ODP
Server Side Javascript (ru)
PDF
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
PDF
Введение в maven
PDF
Денис Паясь
PPTX
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
PDF
Performance engineering stories from #fdminicon Saransk
PDF
Фронтенд разработка без боли
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PDF
Angular2
PDF
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
PPTX
Codeception + Docker + Robo и что из этого вышло
PDF
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
PPTX
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PPTX
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
PPTX
Как писать на PHP и не стать быдло-кодером
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Gradle. Новый уровень автоматизации для Android
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Лучшие практики CI/CD с Kubernetes и GitLab / Дмитрий Столяров (Флант)
Server Side Javascript (ru)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
Введение в maven
Денис Паясь
CodeFest 2014. Шкредов С. — Управление зависимостями в архитектуре. Переход о...
Performance engineering stories from #fdminicon Saransk
Фронтенд разработка без боли
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Angular2
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Codeception + Docker + Robo и что из этого вышло
"Портирование Web SDK с JS на TS" Петров Григорий, Voximplant
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Konstantin Slisenko - OSGi, Equinox, Eclipse plug-in development, v 2.0
Как писать на PHP и не стать быдло-кодером
Ad

Viewers also liked (10)

PDF
Gradle
PDF
Enter the gradle
PDF
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
PDF
Linux commands
PDF
Google советы успешного поиска
PDF
Bash scripting
PDF
Стратегии выполнения тестов в Gradle
PDF
Разработка Enterprise-приложения на основе Spring Framework
PPTX
Konstantin slisenko - Spring Framework
PPT
Spring in java
Gradle
Enter the gradle
"IntelliJ IDEA и Android Studio для Android-разработчиков". Филипп Торчинский...
Linux commands
Google советы успешного поиска
Bash scripting
Стратегии выполнения тестов в Gradle
Разработка Enterprise-приложения на основе Spring Framework
Konstantin slisenko - Spring Framework
Spring in java
Ad

Similar to Javaone 2013 moscow gradle (20)

PPTX
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
PPTX
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
PDF
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
PDF
Tech Talks @NSU: Проходим тест Джоэла
PPTX
How we built continuous delivery
PDF
Проходим тест Джоэла
PDF
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
PDF
Юрий Василевский «Автоматизация в XCode»
PDF
Юрий Василевский "Автоматизация в XCode"
PDF
A.pleshkov
PPTX
Little Service in 2h
PDF
"Девопс - это не только для программистов. Практические примеры из жизни одно...
PDF
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
PPTX
Как быть с большими сайтами на Word press
PPTX
Оптимизация производительности нагруженных веб-систем на Java
PDF
Компонентный подход: скучно, неинтересно, бесперспективно
PDF
My Open Source (Sept 2017)
PPTX
Gitlab devconf
PDF
2 bdw.key
PPTX
Какой фреймворк нам нужен для Web? Денис Цыплаков
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Tech Talks @NSU: Проходим тест Джоэла
How we built continuous delivery
Проходим тест Джоэла
JS Lab2017_Алексей Зеленюк_Сбалансированное окружение для вашей продуктивности
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский "Автоматизация в XCode"
A.pleshkov
Little Service in 2h
"Девопс - это не только для программистов. Практические примеры из жизни одно...
Александр Курдюков. Внедрение continuous delivery для гетерогенных поставок.
Как быть с большими сайтами на Word press
Оптимизация производительности нагруженных веб-систем на Java
Компонентный подход: скучно, неинтересно, бесперспективно
My Open Source (Sept 2017)
Gitlab devconf
2 bdw.key
Какой фреймворк нам нужен для Web? Денис Цыплаков

More from Evgeny Borisov (9)

PDF
Java 8 puzzlers
PDF
Spring puzzlers 2
PDF
Spring puzzlers
PDF
Spring data jee conf
PPTX
Groovy puzzlers jug-moscow-part 2
PDF
Groovy jug-moscow-part 1
PPTX
PPTX
Spring the ripper
PPTX
Javaone 2013 moscow gradle english
Java 8 puzzlers
Spring puzzlers 2
Spring puzzlers
Spring data jee conf
Groovy puzzlers jug-moscow-part 2
Groovy jug-moscow-part 1
Spring the ripper
Javaone 2013 moscow gradle english

Javaone 2013 moscow gradle