Javaone 2013 moscow gradle

Post on 05-Dec-2014

1.226 views 0 download

description

 

Transcript of Javaone 2013 moscow gradle

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

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

Чем gradle хорош?

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

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

• Groovy

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

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

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

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

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

тест?

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.

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

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

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

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

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

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

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

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

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

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

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

maven2gradle plugin

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

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

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

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

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

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

• Ваши вопросы, поделки и рисунки присылайте по адресу: bsevgeny@gmail.com