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

  Рет қаралды 45,093

Sergey Nemchinskiy

Sergey Nemchinskiy

Күн бұрын

Пікірлер
@kirekov
@kirekov 4 жыл бұрын
Сергей, я давно и с большим удовольствием смотрю ваш канал, но не могу с вами согласиться по поводу 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 жыл бұрын
Поддерживаю. Ожидал в видео увидеть интересную информацию о Gradle, но про то, как он функционирует и чем отличается не сказано по-сути ни слова, если не считать одну минуту недовольства этой системой сборки)
@gaben-agent
@gaben-agent 4 жыл бұрын
Только в pom.xml ты практически никогда не лезешь и разбираться в build секции почти никогда не нужно. Ну а слово "изыски" частенько имеет значение "изъебы", без которых как бы иногда можно обойтись. Не хочу наезжать на Gradle. Он крутой и все такое. Просто сборка проекта - это редко модифицируемая вещь. Обычно просто добавляются зависимости и выполняется mvn clean package -P с нужными профилями.
@alexxx4434
@alexxx4434 4 жыл бұрын
Что вы от ретрограда ожидаете?
@blinkovadelya
@blinkovadelya 4 жыл бұрын
Мавэн тоже далеко не только для Java. Ещё и для Шарп
@vks43523
@vks43523 4 жыл бұрын
Совсем недавно перешел на Java c .NET, пробовал разобраться с Maven - переплевался. Знакомый Java developer посоветовал Gradle, с ним вообще проблем не возникло. Как мнение новичка в мире Java - с Gradle гораздо проще начать работать
@rushisharma6009
@rushisharma6009 2 жыл бұрын
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.
@elevenqtwo
@elevenqtwo Жыл бұрын
who cares
@Высшийразум-м6б
@Высшийразум-м6б 4 жыл бұрын
Давно ждал ролика про системы сборки. Большое спасибо)
@vasmor2887
@vasmor2887 4 жыл бұрын
Сергей спасибо за ролик, лайк поставил , комментарий написал, на курс приходил , учился. Поддержал всем чем мог :)
@esssssf
@esssssf 4 жыл бұрын
Классный подход - не подготовившись, выпускать ролик. Это как про UI на Java, в котором AWT назывался AWG на протяжении всего видео. Только теперь пострадал Gradle - это Maven, только с JSON-конфигом. Что дальше? Spring Foot?
@liamsmith7052
@liamsmith7052 4 жыл бұрын
Это хобби такое у человека. Я сюда вообще поржать захожу)) Посмотрел в своё время несколько видео, вроде интересные вещи рассказывает. Пока не дошёл до тех тем, в которых сам шарю, и в которых реально есть опыт. Видео про Котлин, JS и .Net ну просто чушь собачий. (Я на тот момент делал проект на Асп.Нете с реактом параллельно с переписыванием проекта на андроиде на Котлин, чтобы знать, что всё с точностью, да наоборот). Без камня в чей-либо огород, просто так и есть, если коротко. Мнение строится не на основании фактов и опыта, а на основании тезисов, часть которых устарела лет 8 назад, часть из которых просто взята, видимо из головы. Больше всего орнул, когда в одном видео говорил, что null-safety в Котлине не нужен, потому что так говорил дядя Боб, можно ведь всё покрыть тестами. В другом 20 минут расписывал, почему не нужно возвращать нулл, и сколько в Джаве из-за этого проблем) Ещё в каком-то рассказывал, что важна строгая типизация. Что null-safety, это частный случай строгой типизации, или, вернее, её отсутствие в джаве для нуллов, сложить 2 и 2 в уме не получилось. Получаем биполярочку) Про Андроид ещё круто было. Если вы не любите рисовать в фотошопе, лучше выберите энтерпрайз джаву, потому что рано или поздно заставят. Всё равно, что сказать, что Андроид может МП3хи воспроизводить, поэтому в любой момент придётся учить ноты и звукорежиссуру) Вот и думаю, про собеседования и найм кадров вроде дельные вещи говорит, а почти уверен, что покажи это видео реальному проджект-менеджеру/кадровику/скрам-мастеру, почти уверен, что он так же мне скажет, что не имеет ничего общего с реальностью. Про работу на легаси-проектах и ПХП, в принципе, верно, на мой взгляд. Но это, видимо, сломанные часы дважды в день верно время показывают)
@arthurfonzerelli6484
@arthurfonzerelli6484 4 жыл бұрын
@@liamsmith7052 Ну да, с такой логикой и java backend разработчика могут заставить рисовать в фотошопе, ведь у этого бэкэнда есть фронтэнд, а на фронтэнде есть кнопочки, а значит их нужно рисовать, а значит заставят делать это именно backend разработчика.
@petryellow
@petryellow 7 ай бұрын
@@liamsmith7052 парадокс заключается в том, что знающиий человек не рассказывает, а незнающий рассказывает.
@user-rh8zt3zo2z
@user-rh8zt3zo2z 4 жыл бұрын
Привет. Идея для видео (новичковые вопросы): может посмотрите всякие разные вакансии и объясните что означает каждый пункт.
@TelepathicCucumber
@TelepathicCucumber 3 жыл бұрын
Если для сборки проекта изпользуется Gradle, то конфигурация проекта пишется на DSL языках: Groovy или Kotlin, а не с помощью JSON.
@Snake19S
@Snake19S 4 жыл бұрын
Сергей, вы видимо не работали или очень давно работали с gradle. Недели две назад, когда у меня был опыт только с maven, то я бы с вами согласился, но сейчас я сам освоил gradle по его доке и гуглу, и за две недели перевёл наш Java продакшен проект на gradle. Так вот - gradle это не "Maven с JSON-конфигом", а намного-намного больше. Нужно отдельное видео про него.
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 3 жыл бұрын
привет, скинь ссылке по каким изучал gradle. спасибо
@ysparrow1
@ysparrow1 4 жыл бұрын
Ну зря ты так про грейдл, это не джсон, это груви ДСЛ, там можно код писать... гораздо круче и гибче чем мавен
@Galano-vx7xy
@Galano-vx7xy 4 жыл бұрын
Я надеюсь,это по прежнему Сергей Немчинский?Я могу выдохнуть и спокойно посмотреть ролик?))
@АйТиБорода-э8й
@АйТиБорода-э8й 4 жыл бұрын
Gradle build scripts are written using a Groovy or Kotlin DSL. Деда, какой JSON? Ant и Maven это как Imperative и Declarative подходы. И SAP HYBRIS все еще собирается на Ant)
@HITROME
@HITROME 4 жыл бұрын
Не согласен по поводу Gradle. По мне - удобнее, чем Maven, читабильнее, менее геморройный. И сейчас вообще тенденция собирать на Gradle. Поэтому, я бы советовал главным образом изучать Maven и Gradle. А про Ant иметь в виду, что такое есть. Я все новые проекты делаю на Gradle, и это не Android-разработка. Тот же Liferay переехал на Gradle. Да и много кто. Поэтому, всё хорошо, но, мне кажется, немножечко не объективно.
@АлександрПлеханов-й9ы
@АлександрПлеханов-й9ы 3 жыл бұрын
"менее геморройный" - ахахахаха
@sawer.channel
@sawer.channel 7 ай бұрын
Пов-собираешь .jar файл с дополнениями на Gradle(Kotlin)
@elenawendel6066
@elenawendel6066 3 жыл бұрын
Спасибо за полную информацию и историю. Стало более понятным зачем и для чего нужно. Учусь на втором семестре в Берлине на прикладной информатике и лабораторную по алгоритмам и структурам данных необходимо писать используя gradle для java. Но забыли объяснить зачем он нужен).
@master.joda987
@master.joda987 4 жыл бұрын
кто и когда сказал Сергею, что мы любим, как от Адама и Евы?)) шучу, на самом деле любим
@OleksiiVerkhola
@OleksiiVerkhola 9 ай бұрын
Ну замечательное видео получилось
@nephritemontague2872
@nephritemontague2872 Жыл бұрын
Спасибо большое
@alinakopus
@alinakopus Ай бұрын
Сергей, а можно в подкасты ваши видео превратить?😊 чтоб удобно слушать можно было
@СайкалЧолпонбайкызы
@СайкалЧолпонбайкызы 2 жыл бұрын
Очень приятно Вас слушать,огромная благодарность.
@valexeye
@valexeye 4 жыл бұрын
Мне кажется, или вначале ролика путаются понятия "система сборки" и "пакетный менеджер"? Ведь система сборки она нужна именно для сборки приложения, а не для дистрибьюции. То есть даже если приложение будет запускаться на той же машине, на которой и разрабатывалось. И да, системы сборки нужны были и тогда, когда машины были большими и разрабатывали через удаленные терминалы. Просто они были проще, так как сами приложения были меньше и проще. В простейшем случае система сборки - это просто скрипт. В вырожденном случаей - этот скрипт состоит из одной команды: запуск компилятора на один compilation unit. Build & Run в IDE - это запуск системы сборки в любом случае. (либо внешней либо встроенной в IDE)
@ДимаВ-к7м
@ДимаВ-к7м 4 жыл бұрын
Вооо Хоть все понятно стало откуда что пошло и зачем вообще эти мейвены))
@pavel7930
@pavel7930 4 жыл бұрын
Спасибо, за выпуск! Ждемс кнопку......( Я уже бутылочку виски купил.....
@websofter
@websofter 3 жыл бұрын
Gradle и Maven объединяет только возможность использование пакетного менеджера, а так у них разные подходы. первый использует декларативный, а второй - императивный. Для декларативного подхода и используется своеобразный язык программирования Groovy и он гибче и легче в плане написания супротив императивного, где тебе самому требуется высчитывать и написать подробности сборки
@mortius5745
@mortius5745 4 жыл бұрын
Gradle = json ? Сергей, да вы прям новый континент открыли. :D
@Dima-fr8cw
@Dima-fr8cw 4 жыл бұрын
Теперь я понимаю что такое gradle в androidStudio, спасибо, за рекламу like)
@nikolaysokolov9027
@nikolaysokolov9027 4 жыл бұрын
Не знал, что с ant'ом столько боли! Спасибо.
@Бардзо
@Бардзо 4 жыл бұрын
Спасибо за ваши видео
@mykolachadovych7863
@mykolachadovych7863 4 жыл бұрын
Переход в чёрно-белый прикольно)
@das1cha
@das1cha 2 жыл бұрын
8:18 Становится муравейником :D
@olegoshurkov8309
@olegoshurkov8309 3 жыл бұрын
Спасибо большое за видео.
@alexei3366
@alexei3366 4 жыл бұрын
Gradle рулит. Файлы сборки пишутся или на Groovy или на Kotlin DSL.
@grigoriykarpenko235
@grigoriykarpenko235 4 жыл бұрын
Классно интересно
@Fioletka_YT
@Fioletka_YT 4 жыл бұрын
Сергей, Вы виноваты в том, что я из-за Вас полюбил Java и сейчас упорно в этом разбираюсь и пишу различные интересные проекты!
@egor1923
@egor1923 4 жыл бұрын
Сергей. Вам очень идет зеленый)
@master.joda987
@master.joda987 4 жыл бұрын
да, мавен нужно изучать вначале, градл уже после, все равно использует ту же репу и переписанные плагины, на ант сейчас уже можно забить
@antondityatev2338
@antondityatev2338 3 жыл бұрын
где бы почитать про производственные циклы приложений? Про стадии от ТЗ заказчика до production'a?
@sartjhon3300
@sartjhon3300 4 жыл бұрын
Неоднозначный ролик вышел. Как новичку, видео оказалось познавательным, ответилот на интересующие вопросы. Но судя по комментариям, не все так просто и радужно. Градл - не мавен, а что то намного проще и лучше. И эти противоречивые данные просто разрывают юную голова новообращённого программиста
@maxlich9139
@maxlich9139 4 жыл бұрын
не сказал бы, что грейдл проще мейвена
@ГумпилГумпилов
@ГумпилГумпилов 3 жыл бұрын
Здравствуйте, про Vaadin расскажите пожалуйста
@ki16or
@ki16or 4 жыл бұрын
так не было же кнопочки собраться тогда и ide тоже особо не было? программировали в vim и emacs. а собирали код командой make (одна из них)
@shatl404
@shatl404 4 ай бұрын
а что работает быстрее? а про кеширование в гредл не?
@Botan109
@Botan109 3 жыл бұрын
Спасибо. Круто.
@mikep541
@mikep541 4 жыл бұрын
Здравствуйте, Сергей! Назрел такой вопрос, он уже заезженный 1000 раз но все же, опираясь на весь ваш опыт в ит и разработке в целом, учитывая ситуацию на рынке и популярность яп на данный момент, какой яп Вы бы выбрали (без предвзятости) чтобы войти в ит, так сказать и почему? Заранее большое спасибо!
@alexandrapersukova
@alexandrapersukova 4 жыл бұрын
Добрый день! Сергей ранее записывал видео: "Как узнать какой язык программирования тебе подходит?", "Как определить какое из направлений разработки тебе ближе?", "Почему бессмысленны советы какой язык программирования выбирать в 2020 году?", возможно они помогут вам определиться.
@mikep541
@mikep541 4 жыл бұрын
@@alexandrapersukova Спасибо большое:)
@qr46654
@qr46654 4 жыл бұрын
Сергей, пожалуйста, расскажите об Apache Camel
@011101010101001
@011101010101001 2 жыл бұрын
2:33 орнул)
@andreasstager1642
@andreasstager1642 4 жыл бұрын
Gradle в формате json? Ниче, шо там вполне нормальный такой Groovy для скриптов используется? И где про sbt?
@java-software-engineer
@java-software-engineer 4 жыл бұрын
Использовать sbt для сборки Java приложений - это извращение.
@andreasstager1642
@andreasstager1642 4 жыл бұрын
@@java-software-engineer Мы не ищем легких путей(с) Я когда-то билд Flex/AIR аппликухи построил на sbt, потому как надо было под виндой собирать бандл под макось, а ни Ант, ни Мейвен не мог дать мне нужных возможностей. Грейдл тогда еще сильно сырой был.
@asdfhjoaijfosdfhkasjnkaa
@asdfhjoaijfosdfhkasjnkaa 4 жыл бұрын
Сергей, стоит ли изучать java или c++ для веба или десктопа после php? При этом не хотелось бы бросать первый язык.
@nazin.s
@nazin.s 4 жыл бұрын
Попробуйте и то, и другое, полистайте информацию, какие задачи сейчас на этих языках решают и поймите для себя, с чем больше хочется работать. К сожалению, прямо глубоко придется что-то одно выбрать, хотя если по пути масс-маркета или фриланса хотите идти, то можно вполне php и java совмещать
@oleksandrshalbanov2685
@oleksandrshalbanov2685 4 жыл бұрын
А на вашем сайте контакт в скайпе не актуален? Никто там не отвечает...
@alexandrapersukova
@alexandrapersukova 4 жыл бұрын
Добрый день! Вам ответили?
@oleksandrshalbanov2685
@oleksandrshalbanov2685 4 жыл бұрын
@@alexandrapersukova Да, в Телеграме)
@dmitriyobidin6049
@dmitriyobidin6049 4 жыл бұрын
Сергей, когда вы уже будете саморазвиваться. А то всё Сергей Немчинский уже сколько лет...
@podsvinokSatani
@podsvinokSatani 4 жыл бұрын
что ты имеешь ввиду?
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
@@podsvinokSatani Это такая "шутка". Что со временем Сергей Немчинский должен стать например, Виктором Гагенским
@РоманКозлов-т6ч
@РоманКозлов-т6ч 4 жыл бұрын
Здравствуйте! Сейчас стою на этапе выбора высшего учебного заведения, очень интересует андроид разработка, а также нейронки. Я понимаю, что существуют курсы и самообучение, но куда-то да поступать то надо) Какие вузы с высоким уровнем преподавания на одной из вышеперечисленных специальностях вы бы могли посоветовать в Украине, или за границей ?
@SergeyNemchinskiy
@SergeyNemchinskiy 4 жыл бұрын
kzbin.info/www/bejne/qIS0pIiVo92ngdk
@ilyakuznetsov5093
@ilyakuznetsov5093 4 жыл бұрын
А что, Сергей уже не программист с большим стажем?
@ФедорШаманов-ы9ы
@ФедорШаманов-ы9ы 3 жыл бұрын
Когда МАШИНЫ БЫЛИ БОЛЬШИМИ , был язык управления заданиями !!! , ну конечно , не MAKE , не BASH и не MAVEN ... но, иден те же самые ПРОГРЕСС , ОДНАКО ;))
@maddjimi8854
@maddjimi8854 3 жыл бұрын
"если вы энтерпрайз разработчик нужно изучать Maven, вариантов нет"... оборжаться.
@alexxx4434
@alexxx4434 4 жыл бұрын
Когда уже имя фамилию поменяешь, Сергей Немчинский? )
@olezhonnv3215
@olezhonnv3215 4 жыл бұрын
Я Ant использую для сборки JavaScript проекта, уже давно. Изначально на нем конфиг написал, потом он разросся, а сейчас лень переписывать на Gulp или Webpack. И Make тоже использую, в проекте на сях. И Gradle тоже, приложения под Андроид билдю.
@petryellow
@petryellow 7 ай бұрын
В xml угловые скобки, а не квадратные
@ФедорИванович-ч8з
@ФедорИванович-ч8з 4 жыл бұрын
АндроидСтудио весит целый гигабайт а сам собрать проект не может, вечно чтото качает. То Gradle, то sdk и патчи. Чем вообще студия занимается , синтаксис подчеркивает?
@blinkovadelya
@blinkovadelya 4 жыл бұрын
А Google Bazel?
@tooman
@tooman 4 жыл бұрын
Где овальная лисичка?
@7453060
@7453060 4 жыл бұрын
Не пытайся заставить двух муравьёв нести одну веточку...
@AK-ji3qv
@AK-ji3qv Ай бұрын
слушай, зачем всё это???
@master.joda987
@master.joda987 4 жыл бұрын
то ощущение, когда застал ант)
@DjamSerg
@DjamSerg 4 жыл бұрын
gradle конфиг файл не json ниразу, gradle в отличие от maven поддерживает параллельные процессы сборки...
@chroma_red
@chroma_red 2 жыл бұрын
кто-то на самом деле изучает язык его сборщики и фреймворки основываясь на вакансиях?
@klxqz
@klxqz 4 жыл бұрын
Сергей удивительный мужик, в целом рассказывает вроде бы верно, прям уж очень сильно не докопаться, но начни только чуть больше к его словам прислушиваться и оспорить или дополнить можно каждое) ну наверное Сергей для дураков свое видео пилит, так сказать какую-то кость кинул, а там дальше сами разбирайтесь) Ну и как обычно специфичный взгляд на ряд вопросов) а в остальном конечно забавно рассказывает👍
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
зато у тебя всё гладко, ничего конкретного не сказал, не прикопаешься даже)
@klxqz
@klxqz 2 жыл бұрын
@@Das.Kleine.Krokodil ну как я и сказал, Сергея от адама и евы, конечно, прикольно слушать, но как минимум говорить, что грейдл базирующийся на груви/котлине это джисон с какими-то там другими скобками ну как-то смешно. Ну и как-то по факту кроме воды и исторической интереснейшей справки, что было в этом видео? Прозвучало ли какое-то объективное сравнение систем, едва ли..
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
@@klxqz про градл тут уже много написали. Ты то другое сказал, что оспорит или дополнить. Мне как новичку видео было полезно. Как оно там в теме сборки
@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 жыл бұрын
Моим работодателям, на то время, наверно было очень нужно иметь отдельного сотрудника, который только сопровождает муравья в его нелёгком пути домой.
@МаксимСумин-у9ф
@МаксимСумин-у9ф 4 жыл бұрын
Причем тут вообще gradle и json ? Ролик показывает полную некомпетентность автора в тех технологиях, с которыми он не работал.
@level4complete
@level4complete 4 жыл бұрын
Я не понимаю, зачем это все? Зачем этот гемор с разными сборщиками. Почему нельзя иметь один сборщик от вендора? XML, JSON или DSL самопровозглашенный, мне как программисту вообще посрать как он собирает, главное чтобы код работал. Не занимайтесь ерундой
@НикитаГлухов-п5ю
@НикитаГлухов-п5ю 3 жыл бұрын
это опенсорс чувак, сборщик от вендора - это тивоизация поэтому вендор выпускает только виртуальную машину и стандартную библиотеку. А все остальное пишет сообщество и побеждает самая удобная софтина.
Что такое Java и как ее выучить?
19:55
Sergey Nemchinskiy
Рет қаралды 156 М.
Евгений Борисов - Power of Gradle
1:19:56
JPoint, Joker и JUG ru — Java-конференции
Рет қаралды 93 М.
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
VIP ACCESS
00:47
Natan por Aí
Рет қаралды 30 МЛН
Почему нельзя возвращать NULL?
22:11
Sergey Nemchinskiy
Рет қаралды 117 М.
Что такое Git? Зачем он нужен?
14:30
Sergey Nemchinskiy
Рет қаралды 135 М.
Java с нуля. Система сборки проекта
24:43
Java Kabala
Рет қаралды 4,1 М.