Как начать понимать грабли

1,921
107
378
Вот ещё давно стал часто смотреть в исходники модов. В целом всё понятно, но когда открываю некоторые файлы Gradle в популярных и крупных проектах, сразу теряюсь — не понимаю, что, куда, где и когда происходит.
Я понимаю как в build.gradle поменять версию, добавить мод или библиотеку в зависимости.
Как начать понимать эти заклинания? И ещё как научится писать что-то более сложное?

Спасибо заранее за помощь!
 
Нужно просто... Читать продолжение в источнике

Открыть официальную и достаточно хорошую документацию.
 
Gradle, к некоторому сожалению, слишком много позволяет: а именно писать код прямо в скриптах сборки. С одной стороны это хорошо: позволяет решить практически любую задачу, но в то же время делает скрипты сборки монструозными. Не у всех разработчиков есть чувство меры, чтобы понять что пришло время писать свой плагин, а скрипты сборки должны оставаться простыми и лаконичными плагинами.

Тут всё как с программированием: чем больше возможностей - тем больше простора для говнокодинга. В сфере майна последних слишком много.
 
Открыть официальную и достаточно хорошую документацию.
Есть весьма хорошая документация по граблям.
Я первым делом лезу в доку, она не очень мне помогла.

Потыкай в тестовом проекте в IDEA, это не сложно.
Я по ссылке нашёл только про добавление зависимостей, подключение плагинов, создание субпроектов, создание тасков и т.д.. Это не то. Это можно всё загуглить.

монструозными
Размер кода, конечно влияет на его понимание, но я немного не об этом. Я про то, что делают вызываемые методы и на что они влияют.

Вот пример вызываемого метода из какого-то build.gradle - evaluationDependsOn. У него в доках есть описание - Declares that this project has an evaluation dependency on the project with the given path.. Я что-то опустил, но что такое evaluation dependency? И так почти с каждым вызываемым методом.

Было бы в gradle меньше кода, то я бы конечно бы посмотрел как он работает. А так, смотреть в исходники нету смысла.
 
Вот пример вызываемого метода из какого-то build.gradle - evaluationDependsOn
Описание этой штуки напрямую связано с multi-project gradle. Точнее, то, как подпроект "общается" с другими подпроектами.
Вряд ли это можно применить где-то в майне. Разве что, если ты пишешь и либу, и мод в одном проекте (что, на мой взгляд, странно).

Я первым делом лезу в доку, она не очень мне помогла.
Читай ещё раз и ещё раз, пока не поймёшь. В отличие от Forge, у Gradle документация очень хорошая.

Ну и теория без практики - абсолютно бессмысленная вещь. Совет с потыкать остаётся актуальным.
 
Gradle в популярных и крупных проектах, сразу теряюсь — не понимаю, что, куда, где и когда происходит.
Немногие программеры заботятся о читаемости кода логики проекта. Ещё меньше людей заботатится о логике сборки. Поэтому неудивительно что билдскрипты градла вызывают у тебя вопросы

Как в любой технологии, начни с официальной документации и примеров.

На Ютубе есть вот такой плейлист об основах градла

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

В контексте моддинга имеет смысл собрать и поковыряться в плагинах для сборки модов: ForgeGradle и FabricLoom

Я первым делом лезу в доку, она не очень мне помогла.
Меня она тоже раздражает. Но я свое уже настрадал и понял как оно работает и как под это деаелопить.
 
  • Like
Реакции: CMTV
Назад
Сверху