Как стать автором
Обновить

Боитесь ли вы Gradle так как боюсь его я?

Время на прочтение2 мин
Количество просмотров17K
Скажу сразу — в Gradle я совсем новичок.
Пол рабочего дня, вместо того, чтоб писать код содержащий мою семью, я потратил на то, чтобы узнать что из 150-ти строк конфига, надо было исправить одну, поменяв classpath 'com.jakewharton.sdkmanager:gradle-plugin:+ на com.jakewharton.sdkmanager:gradle-plugin:0.10.1.
Программа вчера запускалась а сегодня перестала. А знаете что я сегодня сделал не так? А ничего. Абсолютно тот же код и те же конфиги. Ни одного файла не менял.
Смышленый или опытный программист уже догадался что знак "+" — значит что надо загрузить самую последнюю версию библиотеки и загрузилось что то не то. Да это часть проблемы, но не вся. Сама библиотека ничего не портила. Она просто имела зависимость от другой — которая портила.
Да и вообще, что за мода выкладывать не оттестированные библиотеки в общий репозиторий? При Мавене такого не было!

А если интересно, опишу как это выглядело.
Перестало из IDE запускаться приложение на Андроид. Чтоб понять что виновато не IDE, а Graddle, который собирает приложение ушло время. Кстати компилировалось то все отлично. До самого конца. Но не запускалось.
Поискал ошибку, в интернете нашол что у плагина android.tools.build в последней версии баг. Надо только вернуть старую, 11-ю и все заработает. Я смотрю в конфиги и вижу что 11я уже стоит. В общем я долго извращался, пока не понял что не смотря на то что прописана 11-я, используется все равно последняя.
В Gradle не нашел как посмотреть зависимости плагинов (а в Мавене такая возможность есть). Но путем коментирования строчек и перезапускания билда снова и снова я нашол плагин, который в новой версии использует новую версию злосчастного android.tools.build.

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

Чтобы быть не просто плаксой, а эрудированным плаксой, постараюсь сделать свои предложения в пустоту:
Ну если в конфиге прямо указана версия плагина, то можно как-то информировать пользователя что использоваться будет другая.
Да, хорошо бы было ввести команду, показывающую дерево зависимости плагинов.
Не надо выкладывать плохо оттестированные плагины в общий доступ.
Возможность ставить "+" надо запретить. По крайней мере на самом верхнем уровне. То есть «10.+» еще можно, но просто "+" — АТАТА!

Вот такое увлекательное приключение на 5 часов в мире Gradle было у меня сегодня.
В общем, новички Gradle, не наступайте на мои грабли, а старожилы — ругайте меня во всю, за мою некомпетентность.
Теги:
Хабы:
Всего голосов 46: ↑20 и ↓26-6
Комментарии27

Публикации

Истории

Работа

Java разработчик
395 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн