Buck vs Gradle, pro и cons для систем сборки Android

В настоящее время я использую ant для создания Android-проектов, но он просто не сокращает его для крупных проектов, а сохранение разных результатов становится больно.

Две альтернативы, на которые я смотрю, – это Buck ( http://facebook.github.io/buck/ ) и Gradle, которые Google поддерживает с помощью студии Android ( http://tools.android.com/tech-docs/new- Сборка / руководство пользователя ).

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

Важные моменты

  • Скорость сборки, специально для dev builds
  • Множественные результаты с той же базы кода
  • Простота использования

Я открыт и для других альтернатив. Что вы предлагаете и почему?

Solutions Collecting From Web of "Buck vs Gradle, pro и cons для систем сборки Android"

Как я положил начало и в центре документации Buck : «Buck – это система сборки для Android, которая поощряет создание небольших модулей многократного использования, состоящих из кода и ресурсов».

По дизайну Buck поощряет вас создавать небольшие модули, чтобы вы могли легко создавать новое приложение из существующих строительных блоков. Это означает, что поддержание нескольких конечных результатов является простым: оно исключает шаблонный шаблон, не требуя, чтобы вы организовали свой репозиторий в предопределенную структуру. Вы также можете создавать специальные шаги сборки в соответствии с вашими потребностями с помощью Buck с помощью макросов и жанров. (В работе работает более формализованная система расширений).

Мы также очень заботимся о скорости, особенно скорости инкрементных сборок. Поскольку у Бака есть сильная концепция зависимостей, мы часто можем избежать восстановления промежуточных артефактов. Другие системы сборки также пытаются это сделать (например, Ant), но часто жертвуют правильностью, в результате. Мы этого не делаем.

Мы признаем, что поддержка IDE важна. Разумеется, сотрудничество Google с Gradle дает им ногу. Тем не менее, Buck имеет команду для создания проекта IntelliJ из графика зависимости, определенного в файлах сборки Buck, и мы сломались на нашем собственном плагине IntelliJ, так что это то, о чем мы также заботимся.

Наконец, имейте в виду, что Бак используется для создания Facebook, Facebook Messenger и Instagram для Android. Бак не уходит. Кроме того, код для всех трех приложений (и сокращенных версий приложений для еще более быстрых циклов разработки) живет в одном репозитории Git в Facebook, поэтому те из нас, кто работает над Buck, внутренне чувствительны к потребностям больших кодовых баз, которые поддерживают множество результатов ,

Долгосрочная, новая система сборки Gradle станет стандартом, и она выглядит очень хорошо. Однако похоже, что он еще не готов к использованию в проектах, отличных от трёх. Например, похоже, что он еще не поддерживает зависимостей apklib.

Это понятно и отражено в том, что текущая версия – 0,3. Я с нетерпением жду ее развития.

Для проекта, который должен быть построен сегодня, я бы использовал Maven. Фактически, я сейчас собираюсь построить клиентскую сборку из Eclipse – только в Maven, чтобы они могли иметь повторяющийся процесс сборки, хорошее управление зависимостями и CI. Новая конструкция Gradle выглядит так, что она будет более гибкой, но прямо сейчас Maven обрабатывает апклибы. Поскольку Gradle может использовать зависимости Maven, я ожидаю, что в будущем мы сможем легко перейти от Maven к Gradle.

Я ничего не знаю о Баке. Однако это само по себе является красным флагом. Я смущаюсь использовать систему сборки, о которой мало кто знает. Это не значит, что это нехорошо – это может быть здорово. Но использовать его сейчас, вероятно, является азартной игрой.

Вот градиентный плагин OkBuck, который может позволить вам начать использовать базу BUCK в вашей текущей системе сборки Android Studio + Gradle только с 10 строками конфигурации. Проверьте это.

OkBuck может позволить вам построить свой проект как с градиентом, так и с долларом, со всеми преимуществами градиента и доллара.

Я бы добавил следующие преимущества Бака:

  • Exopackage , т.е. инкрементная сборка apk; Просто проверьте таблицу со временем сборки на этой странице
  • Сетевой кеш . Если у вас несколько разработчиков, работающих с приложением, вам не нужно будет перестраивать компоненты, которые уже созданы другими разработчиками.