Системы сборки для Java - Ant, Maven и Gradle

preview_player
Показать описание
Что такое системы сборки для Java , что они в себя включают, и какие преимущества каждой из них?

Курсы для новичков:

Продвинутые курсы для состоявшихся девелоперов:

00:00 - вступление Сергея Немчинского
01:35 - что такое система сборки
04:43 - утилита make
06:40 - apache ant
09:52 - apache maven
11:01 - gradle
12:00 - что изучать
12:42 - реклама
13:40 - что включает в себя система сборки
15:05 - преимущества использования систем сборок
16:22 - итог

#sergeynemchinskiy #программированиенаjava #ityoutubersru
Рекомендации по теме
Комментарии
Автор

Давно ждал ролика про системы сборки. Большое спасибо)

uruyuoj
Автор

Сергей, я давно и с большим удовольствием смотрю ваш канал, но не могу с вами согласиться по поводу gradle. Здесь не все так однозначно.

Это не просто "Maven с JSON-конфигом". Там вообще не JSON, а dsl на основе groovy (в современных версиях еще и kotlin script поддерживается). И ключевое отличие от xml в том, что groovy - это императивный язык. В рамках gradle таски вы можете писать циклы, условия, читать файлы и.т.д.
Также gradle поддерживает инкрементальную сборку. Это значит, что при билде будут компилироваться только те классы, которые изменились, а не весь проект целиком.
Более того, gradle это не только сборщик для Java. Конечно, чаще всего он используется именно так. Однако он обладает очень гибкой системой плагинов. С помощью gradle можно собирать проекты на C++, например.


Ну и самое главное - это жизненный цикл gradle. Maven хорош, когда у вас "типовой" проект без каких-либо изысков. Если же вы хотите встроиться в lifecycle, здесь это не так просто. Конечно, есть куча плагинов и для maven в том числе, однако разобраться потом в этой огромной build секции не очень-то просто. Gradle строит граф, в котором можно удалять ноды и добавлять новые. Например, если я хочу, чтобы моя кастомная таска выполнялась перед тестами, достаточно написать: test.dependsOn myTask. Аналогично, если мне нужно разделить тесты на юнит и интеграционные и выполнять их два этапа, это также легко реализуемо.

kirekov
Автор

Ну зря ты так про грейдл, это не джсон, это груви ДСЛ, там можно код писать... гораздо круче и гибче чем мавен

ysparrow
Автор

Сергей спасибо за ролик, лайк поставил, комментарий написал, на курс приходил, учился. Поддержал всем чем мог :)

vasmor
Автор

I don't understand Russian and had to watch it using translated subtitles and this video still did a better job at explaining than many other videos on the topic.

rushisharma
Автор

Очень приятно Вас слушать, огромная благодарность.

tyiwwvy
Автор

Классный подход - не подготовившись, выпускать ролик. Это как про UI на Java, в котором AWT назывался AWG на протяжении всего видео.
Только теперь пострадал Gradle - это Maven, только с JSON-конфигом. Что дальше? Spring Foot?

esssssf
Автор

Спасибо за полную информацию и историю. Стало более понятным зачем и для чего нужно. Учусь на втором семестре в Берлине на прикладной информатике и лабораторную по алгоритмам и структурам данных необходимо писать используя gradle для java. Но забыли объяснить зачем он нужен).

elenawendel
Автор

Если для сборки проекта изпользуется Gradle, то конфигурация проекта пишется на DSL языках: Groovy или Kotlin, а не с помощью JSON.

TelepathicCucumber
Автор

Привет. Идея для видео (новичковые вопросы): может посмотрите всякие разные вакансии и объясните что означает каждый пункт.

rhztzoz
Автор

Спасибо большое <3 как всегда на высоте

nephritemontague
Автор

Я надеюсь, это по прежнему Сергей Немчинский?Я могу выдохнуть и спокойно посмотреть ролик?))

Galano-vxxy
Автор

Gradle build scripts are written using a Groovy or Kotlin DSL. Деда, какой JSON? Ant и Maven это как Imperative и Declarative подходы. И SAP HYBRIS все еще собирается на Ant)

czqqjgy
Автор

где бы почитать про производственные циклы приложений? Про стадии от ТЗ заказчика до production'a?

antondityatev
Автор

Не согласен по поводу Gradle. По мне - удобнее, чем Maven, читабильнее, менее геморройный. И сейчас вообще тенденция собирать на Gradle. Поэтому, я бы советовал главным образом изучать Maven и Gradle. А про Ant иметь в виду, что такое есть. Я все новые проекты делаю на Gradle, и это не Android-разработка. Тот же Liferay переехал на Gradle. Да и много кто. Поэтому, всё хорошо, но, мне кажется, немножечко не объективно.

HITROME
Автор

Не знал, что с ant'ом столько боли! Спасибо.

nikolaysokolov
Автор

кто и когда сказал Сергею, что мы любим, как от Адама и Евы?))

шучу, на самом деле любим

master.joda
Автор

так не было же кнопочки собраться тогда и ide тоже особо не было? программировали в vim и emacs.
а собирали код командой make (одна из них)

kior
Автор

Спасибо, за выпуск! Ждемс Я уже бутылочку виски

pavel
Автор

Мне кажется, или вначале ролика путаются понятия "система сборки" и "пакетный менеджер"? Ведь система сборки она нужна именно для сборки приложения, а не для дистрибьюции. То есть даже если приложение будет запускаться на той же машине, на которой и разрабатывалось.

И да, системы сборки нужны были и тогда, когда машины были большими и разрабатывали через удаленные терминалы. Просто они были проще, так как сами приложения были меньше и проще. В простейшем случае система сборки - это просто скрипт. В вырожденном случаей - этот скрипт состоит из одной команды: запуск компилятора на один compilation unit.

Build & Run в IDE - это запуск системы сборки в любом случае. (либо внешней либо встроенной в IDE)

valexeye