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

Боитесь ли вы 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, не наступайте на мои грабли, а старожилы — ругайте меня во всю, за мою некомпетентность.
Теги:
Хабы:
-6
Комментарии 27
Комментарии Комментарии 27

Публикации

Истории

Работа

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

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

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн