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

Поделиться
HTML-код
  • Опубликовано: 21 ноя 2024

Комментарии • 98

  • @rushisharma6009
    @rushisharma6009 2 года назад +20

    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.

  • @kirekov
    @kirekov 4 года назад +108

    Сергей, я давно и с большим удовольствием смотрю ваш канал, но не могу с вами согласиться по поводу 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. Аналогично, если мне нужно разделить тесты на юнит и интеграционные и выполнять их два этапа, это также легко реализуемо.

    • @Luckenty
      @Luckenty 4 года назад +18

      Поддерживаю. Ожидал в видео увидеть интересную информацию о Gradle, но про то, как он функционирует и чем отличается не сказано по-сути ни слова, если не считать одну минуту недовольства этой системой сборки)

    • @gaben-agent
      @gaben-agent 4 года назад +5

      Только в pom.xml ты практически никогда не лезешь и разбираться в build секции почти никогда не нужно. Ну а слово "изыски" частенько имеет значение "изъебы", без которых как бы иногда можно обойтись.
      Не хочу наезжать на Gradle. Он крутой и все такое. Просто сборка проекта - это редко модифицируемая вещь. Обычно просто добавляются зависимости и выполняется mvn clean package -P с нужными профилями.

    • @alexxx4434
      @alexxx4434 4 года назад +13

      Что вы от ретрограда ожидаете?

    • @blinkovadelya
      @blinkovadelya 4 года назад

      Мавэн тоже далеко не только для Java. Ещё и для Шарп

    • @vks43523
      @vks43523 4 года назад +1

      Совсем недавно перешел на Java c .NET, пробовал разобраться с Maven - переплевался. Знакомый Java developer посоветовал Gradle, с ним вообще проблем не возникло. Как мнение новичка в мире Java - с Gradle гораздо проще начать работать

  • @Высшийразум-м6б
    @Высшийразум-м6б 4 года назад +17

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

  • @esssssf
    @esssssf 4 года назад +50

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

    • @liamsmith7052
      @liamsmith7052 3 года назад +19

      Это хобби такое у человека.
      Я сюда вообще поржать захожу))
      Посмотрел в своё время несколько видео, вроде интересные вещи рассказывает. Пока не дошёл до тех тем, в которых сам шарю, и в которых реально есть опыт. Видео про Котлин, JS и .Net ну просто чушь собачий. (Я на тот момент делал проект на Асп.Нете с реактом параллельно с переписыванием проекта на андроиде на Котлин, чтобы знать, что всё с точностью, да наоборот).
      Без камня в чей-либо огород, просто так и есть, если коротко. Мнение строится не на основании фактов и опыта, а на основании тезисов, часть которых устарела лет 8 назад, часть из которых просто взята, видимо из головы.
      Больше всего орнул, когда в одном видео говорил, что null-safety в Котлине не нужен, потому что так говорил дядя Боб, можно ведь всё покрыть тестами. В другом 20 минут расписывал, почему не нужно возвращать нулл, и сколько в Джаве из-за этого проблем)
      Ещё в каком-то рассказывал, что важна строгая типизация. Что null-safety, это частный случай строгой типизации, или, вернее, её отсутствие в джаве для нуллов, сложить 2 и 2 в уме не получилось. Получаем биполярочку)
      Про Андроид ещё круто было. Если вы не любите рисовать в фотошопе, лучше выберите энтерпрайз джаву, потому что рано или поздно заставят. Всё равно, что сказать, что Андроид может МП3хи воспроизводить, поэтому в любой момент придётся учить ноты и звукорежиссуру)
      Вот и думаю, про собеседования и найм кадров вроде дельные вещи говорит, а почти уверен, что покажи это видео реальному проджект-менеджеру/кадровику/скрам-мастеру, почти уверен, что он так же мне скажет, что не имеет ничего общего с реальностью.
      Про работу на легаси-проектах и ПХП, в принципе, верно, на мой взгляд. Но это, видимо, сломанные часы дважды в день верно время показывают)

    • @arthurfonzerelli6484
      @arthurfonzerelli6484 3 года назад +2

      @@liamsmith7052 Ну да, с такой логикой и java backend разработчика могут заставить рисовать в фотошопе, ведь у этого бэкэнда есть фронтэнд, а на фронтэнде есть кнопочки, а значит их нужно рисовать, а значит заставят делать это именно backend разработчика.

    • @petryellow
      @petryellow 5 месяцев назад

      @@liamsmith7052 парадокс заключается в том, что знающиий человек не рассказывает, а незнающий рассказывает.

  • @vasmor2887
    @vasmor2887 4 года назад +3

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

  • @ysparrow1
    @ysparrow1 4 года назад +17

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

  • @user-rh8zt3zo2z
    @user-rh8zt3zo2z 4 года назад +13

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

  • @master.joda987
    @master.joda987 4 года назад +4

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

  • @Snake19S
    @Snake19S 4 года назад +10

    Сергей, вы видимо не работали или очень давно работали с gradle.
    Недели две назад, когда у меня был опыт только с maven, то я бы с вами согласился, но сейчас я сам освоил gradle по его доке и гуглу, и за две недели перевёл наш Java продакшен проект на gradle. Так вот - gradle это не "Maven с JSON-конфигом", а намного-намного больше. Нужно отдельное видео про него.

  • @alinakopus
    @alinakopus День назад

    Сергей, а можно в подкасты ваши видео превратить?😊 чтоб удобно слушать можно было

  • @TelepathicCucumber
    @TelepathicCucumber 3 года назад +11

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

  • @Galano-vx7xy
    @Galano-vx7xy 4 года назад +9

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

  • @HITROME
    @HITROME 4 года назад +33

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

  • @Dima-fr8cw
    @Dima-fr8cw 4 года назад +3

    Теперь я понимаю что такое gradle в androidStudio, спасибо, за рекламу like)

  • @ДимаВ-к7м
    @ДимаВ-к7м 4 года назад +2

    Вооо
    Хоть все понятно стало откуда что пошло и зачем вообще эти мейвены))

  • @nikolaysokolov9027
    @nikolaysokolov9027 4 года назад +1

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

  • @elenawendel6066
    @elenawendel6066 3 года назад +1

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

  • @mortius5745
    @mortius5745 4 года назад +8

    Gradle = json ? Сергей, да вы прям новый континент открыли. :D

  • @mykolachadovych7863
    @mykolachadovych7863 4 года назад +5

    Переход в чёрно-белый прикольно)

  • @pavel7930
    @pavel7930 4 года назад +2

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

  • @OleksiiVerkhola
    @OleksiiVerkhola 7 месяцев назад

    Ну замечательное видео получилось

  • @АйТиБорода-э8й
    @АйТиБорода-э8й 4 года назад +6

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

  • @das1cha
    @das1cha 2 года назад

    8:18 Становится муравейником :D

  • @websofter
    @websofter 3 года назад +2

    Gradle и Maven объединяет только возможность использование пакетного менеджера, а так у них разные подходы. первый использует декларативный, а второй - императивный. Для декларативного подхода и используется своеобразный язык программирования Groovy и он гибче и легче в плане написания супротив императивного, где тебе самому требуется высчитывать и написать подробности сборки

  • @valexeye
    @valexeye 4 года назад +3

    Мне кажется, или вначале ролика путаются понятия "система сборки" и "пакетный менеджер"? Ведь система сборки она нужна именно для сборки приложения, а не для дистрибьюции. То есть даже если приложение будет запускаться на той же машине, на которой и разрабатывалось.
    И да, системы сборки нужны были и тогда, когда машины были большими и разрабатывали через удаленные терминалы. Просто они были проще, так как сами приложения были меньше и проще. В простейшем случае система сборки - это просто скрипт. В вырожденном случаей - этот скрипт состоит из одной команды: запуск компилятора на один compilation unit.
    Build & Run в IDE - это запуск системы сборки в любом случае. (либо внешней либо встроенной в IDE)

  • @СайкалЧолпонбайкызы

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

  • @Fioletka_YT
    @Fioletka_YT 3 года назад +1

    Сергей, Вы виноваты в том, что я из-за Вас полюбил Java и сейчас упорно в этом разбираюсь и пишу различные интересные проекты!

  • @nephritemontague2872
    @nephritemontague2872 Год назад

    Спасибо большое

  • @Бардзо
    @Бардзо 4 года назад +1

    Спасибо за ваши видео

  • @grigoriykarpenko235
    @grigoriykarpenko235 4 года назад +2

    Классно интересно

  • @olegoshurkov8309
    @olegoshurkov8309 3 года назад

    Спасибо большое за видео.

  • @egor1923
    @egor1923 4 года назад +4

    Сергей. Вам очень идет зеленый)

  • @alexei3366
    @alexei3366 4 года назад +3

    Gradle рулит. Файлы сборки пишутся или на Groovy или на Kotlin DSL.

  • @sartjhon3300
    @sartjhon3300 4 года назад +1

    Неоднозначный ролик вышел. Как новичку, видео оказалось познавательным, ответилот на интересующие вопросы. Но судя по комментариям, не все так просто и радужно. Градл - не мавен, а что то намного проще и лучше. И эти противоречивые данные просто разрывают юную голова новообращённого программиста

    • @maxlich9139
      @maxlich9139 4 года назад

      не сказал бы, что грейдл проще мейвена

  • @antondityatev2338
    @antondityatev2338 3 года назад

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

  • @011101010101001
    @011101010101001 Год назад +1

    2:33 орнул)

  • @ki16or
    @ki16or 4 года назад

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

  • @ГумпилГумпилов
    @ГумпилГумпилов 3 года назад

    Здравствуйте, про Vaadin расскажите пожалуйста

  • @dmitriyobidin6049
    @dmitriyobidin6049 4 года назад +15

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

    • @podsvinokSatani
      @podsvinokSatani 4 года назад

      что ты имеешь ввиду?

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 года назад

      @@podsvinokSatani Это такая "шутка". Что со временем Сергей Немчинский должен стать например, Виктором Гагенским

  • @Botan109
    @Botan109 3 года назад

    Спасибо. Круто.

  • @master.joda987
    @master.joda987 4 года назад +1

    да, мавен нужно изучать вначале, градл уже после, все равно использует ту же репу и переписанные плагины, на ант сейчас уже можно забить

  • @shatl404
    @shatl404 2 месяца назад

    а что работает быстрее? а про кеширование в гредл не?

  • @РоманКозлов-т6ч
    @РоманКозлов-т6ч 4 года назад

    Здравствуйте! Сейчас стою на этапе выбора высшего учебного заведения, очень интересует андроид разработка, а также нейронки. Я понимаю, что существуют курсы и самообучение, но куда-то да поступать то надо) Какие вузы с высоким уровнем преподавания на одной из вышеперечисленных специальностях вы бы могли посоветовать в Украине, или за границей ?

  • @asdfhjoaijfosdfhkasjnkaa
    @asdfhjoaijfosdfhkasjnkaa 4 года назад +1

    Сергей, стоит ли изучать java или c++ для веба или десктопа после php? При этом не хотелось бы бросать первый язык.

    • @nazin.s
      @nazin.s 4 года назад +1

      Попробуйте и то, и другое, полистайте информацию, какие задачи сейчас на этих языках решают и поймите для себя, с чем больше хочется работать. К сожалению, прямо глубоко придется что-то одно выбрать, хотя если по пути масс-маркета или фриланса хотите идти, то можно вполне php и java совмещать

  • @qr46654
    @qr46654 4 года назад

    Сергей, пожалуйста, расскажите об Apache Camel

  • @olezhonnv3215
    @olezhonnv3215 4 года назад

    Я Ant использую для сборки JavaScript проекта, уже давно. Изначально на нем конфиг написал, потом он разросся, а сейчас лень переписывать на Gulp или Webpack.
    И Make тоже использую, в проекте на сях.
    И Gradle тоже, приложения под Андроид билдю.

  • @mikep541
    @mikep541 4 года назад +2

    Здравствуйте, Сергей!
    Назрел такой вопрос, он уже заезженный 1000 раз но все же, опираясь на весь ваш опыт в ит и разработке в целом, учитывая ситуацию на рынке и популярность яп на данный момент, какой яп Вы бы выбрали (без предвзятости) чтобы войти в ит, так сказать и почему?
    Заранее большое спасибо!

    • @alexandrapersukova
      @alexandrapersukova 4 года назад +3

      Добрый день!
      Сергей ранее записывал видео: "Как узнать какой язык программирования тебе подходит?",
      "Как определить какое из направлений разработки тебе ближе?", "Почему бессмысленны советы какой язык программирования выбирать в 2020 году?", возможно они помогут вам определиться.

    • @mikep541
      @mikep541 4 года назад +1

      @@alexandrapersukova Спасибо большое:)

  • @andreasstager1642
    @andreasstager1642 4 года назад +2

    Gradle в формате json? Ниче, шо там вполне нормальный такой Groovy для скриптов используется?
    И где про sbt?

    • @java-software-engineer
      @java-software-engineer 4 года назад +3

      Использовать sbt для сборки Java приложений - это извращение.

    • @andreasstager1642
      @andreasstager1642 4 года назад

      @@java-software-engineer Мы не ищем легких путей(с)
      Я когда-то билд Flex/AIR аппликухи построил на sbt, потому как надо было под виндой собирать бандл под макось, а ни Ант, ни Мейвен не мог дать мне нужных возможностей. Грейдл тогда еще сильно сырой был.

  • @alexxx4434
    @alexxx4434 4 года назад +5

    Когда уже имя фамилию поменяешь, Сергей Немчинский? )

  • @ilyakuznetsov5093
    @ilyakuznetsov5093 4 года назад +1

    А что, Сергей уже не программист с большим стажем?

  • @ФедорШаманов-ы9ы
    @ФедорШаманов-ы9ы 3 года назад

    Когда МАШИНЫ БЫЛИ БОЛЬШИМИ , был язык управления заданиями !!! , ну конечно , не MAKE , не BASH и не MAVEN ... но, иден те же самые ПРОГРЕСС , ОДНАКО ;))

  • @oleksandrshalbanov2685
    @oleksandrshalbanov2685 4 года назад +1

    А на вашем сайте контакт в скайпе не актуален? Никто там не отвечает...

  • @maddjimi8854
    @maddjimi8854 3 года назад

    "если вы энтерпрайз разработчик нужно изучать Maven, вариантов нет"... оборжаться.

  • @petryellow
    @petryellow 5 месяцев назад

    В xml угловые скобки, а не квадратные

  • @master.joda987
    @master.joda987 4 года назад +1

    то ощущение, когда застал ант)

  • @ФедорИванович-ч8з
    @ФедорИванович-ч8з 4 года назад +2

    АндроидСтудио весит целый гигабайт а сам собрать проект не может, вечно чтото качает. То Gradle, то sdk и патчи. Чем вообще студия занимается , синтаксис подчеркивает?

  • @7453060
    @7453060 4 года назад

    Не пытайся заставить двух муравьёв нести одну веточку...

  • @blinkovadelya
    @blinkovadelya 4 года назад

    А Google Bazel?

  • @tooman
    @tooman 4 года назад +1

    Где овальная лисичка?

  • @AK-ji3qv
    @AK-ji3qv 16 дней назад

    слушай, зачем всё это???

  • @klxqz
    @klxqz 4 года назад +1

    Сергей удивительный мужик, в целом рассказывает вроде бы верно, прям уж очень сильно не докопаться, но начни только чуть больше к его словам прислушиваться и оспорить или дополнить можно каждое) ну наверное Сергей для дураков свое видео пилит, так сказать какую-то кость кинул, а там дальше сами разбирайтесь) Ну и как обычно специфичный взгляд на ряд вопросов) а в остальном конечно забавно рассказывает👍

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 года назад

      зато у тебя всё гладко, ничего конкретного не сказал, не прикопаешься даже)

    • @klxqz
      @klxqz 2 года назад

      @@Das.Kleine.Krokodil ну как я и сказал, Сергея от адама и евы, конечно, прикольно слушать, но как минимум говорить, что грейдл базирующийся на груви/котлине это джисон с какими-то там другими скобками ну как-то смешно. Ну и как-то по факту кроме воды и исторической интереснейшей справки, что было в этом видео? Прозвучало ли какое-то объективное сравнение систем, едва ли..

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 2 года назад

      @@klxqz про градл тут уже много написали. Ты то другое сказал, что оспорит или дополнить. Мне как новичку видео было полезно. Как оно там в теме сборки

  • @chroma_red
    @chroma_red 2 года назад

    кто-то на самом деле изучает язык его сборщики и фреймворки основываясь на вакансиях?

  • @DjamSerg
    @DjamSerg 4 года назад +1

    gradle конфиг файл не json ниразу, gradle в отличие от maven поддерживает параллельные процессы сборки...

  • @VitaliyNET
    @VitaliyNET 3 года назад

    Запустил я тут Android Studio на macbook air. Боже... мой это какое то ДНО!!! донное. 2 часа оно что-то качало (при моих 500 мегабит интернета) Забило мне весь диск. Мин 30 билдился этот Gradle. Потом я передумал нажал стоп.. оно делало завершение мин 15. Написал таки 15 строк вывести drawRect... билжу, бедный проц рыгает, оно билдит и билдит... 25-35 мин билдило и запустило эмулятор 😣 тут ему стало вообще плохо. этот квадратик с 1fps ( я прописал в mouse move что бы он двигался) ------- ВЫ КАК ВООБЩЕ АНДРОИДЕРЫ РАБОТАЕТЕ???????? это же пиздц извините. Там компьютер от NASA нужен? Тьфу... еще больше полюбил ios. Это ж какой глубины Жопыыы надо обаладть что бы написать такой тормозной продукт (это я с притензией к гугл). У меня все что от гугла и java вечно рыгает даже на моем i7 настольном с 64 гига оперативки. (Сорри за эмоции но это днооооооооооооооо) Мне просто жалко Jetbrains им постоянно создают новые баги на тормознутость. Мечтаю о том дне когда они перепишут все это на c++, например хоть на QT

  • @7453060
    @7453060 4 года назад

    Моим работодателям, на то время, наверно было очень нужно иметь отдельного сотрудника, который только сопровождает муравья в его нелёгком пути домой.

  • @level4complete
    @level4complete 4 года назад +1

    Я не понимаю, зачем это все? Зачем этот гемор с разными сборщиками. Почему нельзя иметь один сборщик от вендора? XML, JSON или DSL самопровозглашенный, мне как программисту вообще посрать как он собирает, главное чтобы код работал. Не занимайтесь ерундой

    • @НикитаГлухов-п5ю
      @НикитаГлухов-п5ю 3 года назад

      это опенсорс чувак, сборщик от вендора - это тивоизация
      поэтому вендор выпускает только виртуальную машину и стандартную библиотеку. А все остальное пишет сообщество и побеждает самая удобная софтина.

  • @МаксимСумин-у9ф
    @МаксимСумин-у9ф 4 года назад +1

    Причем тут вообще gradle и json ? Ролик показывает полную некомпетентность автора в тех технологиях, с которыми он не работал.