Я использую Maven в течение нескольких месяцев, и мне довольно удобно, как это работает
концептуально и на практике.
Я также достаточно подробно рассмотрел Бакминстер (но еще не пробовал запускать сэмплы), чтобы попытаться выяснить, что это такое.
и как это сравнивается. Документация плохая. Например, они используют терминологию, такую как Build Automate и Deploy, но я еще ничего не видел в развертывании. Поэтапная миграция - еще одна подсказка, но не обсуждаемая тема.
И Maven, и Buckminster дают вам возможность указывать зависимости и в целом управлять процессами сборки, тестирования и, возможно, развертывания.
Они оба имеют интеграцию Eclipse и должны оба (используя только Maven) упрощать настройку и совместное использование проектов на основе Eclipse и их зависимостей.
Основные различия, которые я вижу:
Зависимости:
- Buckminster может указывать зависимости, живущие в исходных репозиториях, и свой собственный тип репозитория в дополнение к возможности ссылаться на репозитории Maven для зависимостей.
- Buckminster может группировать зависимости в виртуальные дистрибутивы, а также поддерживает платформу. Группировка программного обеспечения, безусловно, представляется возможной в Maven с помпами, которые ссылаются на другие зависимости и группируют их.
Строить
- Maven использует неявную систему сборки на основе компоновки. Очень легко создать проект по умолчанию, поместить вещи туда, где они должны быть, и собрать maven, протестировать и создать jar-файлы. В то же время, неявность может также ограничивать. Вы должны жить с тем, как Maven делает вещи.
- Бакминстер - мне не ясно, как Бакминстер решает, что строить и как его строить. Казалось бы, это согласуется с процессом затмения для того же. Бакминстер также допускает использование муравья, но не ясно, является ли это требованием. По крайней мере, жизненный цикл менее (не?) Определен как хороший или плохой, что обеспечивает большую гибкость.
- Оба инструмента допускают сборку без головы, хотя бакинстер может нести с собой немного больше багажа.
Плагины
- Maven имеет очень обширный набор плагинов для всех этапов жизненного цикла для самых разных видов автоматизации, от генерации кода до запуска встроенных сервисов для тестирования.
- Бакминстер, похоже, не имеет той же концепции плагинов. Есть читатели и актеры, но они, похоже, не играют одинаковой роли. Buckminster должен иметь доступ к обширному набору плагинов, доступных для ant. Непонятно, насколько хорошо действия ant могут быть легко интегрированы с остальными процессами Buckminster (это также проблема для плагина maven ant).
Развертывание
- Maven имеет несколько плагинов для генерации дистрибутивов программного обеспечения (сборок) и перемещения их (вагонов). Бакминстер получает все это от муравья?
Сложность
- Различные схемы для Бакминстера могут быть довольно сложными, между CPEC, RMAP, MSPEC и т. Д.
- Maven несколько проще в настройке, хотя он может усложняться в больших и многомодульных проектах. Maven также имеет Архетипы для легкого создания новых проектов.
Документация
- Они оба плохие. ; -)
- Бакминстер очень поверхностный, с точки зрения документации. Недостаточно примеров.
- Плагины Maven обычно имеют очень плохую документацию, что затрудняет их правильную работу.
С моей точки зрения, большую часть того, что я хотел бы сделать с Бакминстером, я могу сделать с Maven. «Материализация» из контроля версий - это плюс, но разработчики в организации могут публиковать моментальные снимки maven в репозитории, чтобы делиться ими друг с другом, в дополнение к предоставлению только фиксированных версий.
Кажется, что существует большая гибкость и свобода от ограничений жизненного цикла Maven (когда-нибудь хотел добавить еще одну фазу, например, после тестирования для очистки? Должен ждать, пока они сделают это в ядре).
Что мне не хватает? Есть ли в Buckminster какой-то значительный объем функциональности, который стоит увеличить по сложности?
Существуют ли какие-либо крайне неточные утверждения выше (учитывая, что я не пользователь Бакминстера, а только пользователь Maven низкого и среднего уровня)?