Я использую Maven в течение нескольких месяцев, и мне очень приятно, как это работает концептуально и на практике.
Я также довольно подробно рассмотрел Buckminster (но еще не получил пока образцы), чтобы попытаться выяснить, что это такое и как он сравнивается. Документация оставляет желать лучшего. Например, они используют терминологию типа "Автоматизация сборки" и "Развертывание", но я все еще ничего не вижу о развертывании. Поэтапная миграция - еще одна намеченная, но не обсуждаемая тема.
Оба Maven и Buckminster предоставляют вам возможность указывать зависимости и обычно управлять процессами сборки, тестирования и, возможно, развертывания.
Оба они имеют интеграцию eclipse и должны оба (с использованием только Maven) тривиализировать настройку и совместное использование проектов на основе eclipse и их зависимостей.
Основные различия, которые я вижу, следующие:
-
Зависимости:
- Buckminster может указывать зависимости, живущие в исходных репозиториях, и собственный тип репозитория в дополнение к возможности ссылаться на репозитории Maven для зависимостей.
- Buckminster может группировать зависимости в виртуальные дистрибутивы и также поддерживает платформу. Группировка программного обеспечения, безусловно, представляется возможной в Maven с помощью poms, которые ссылаются на другие зависимости и группируют их.
-
Сложение
- Maven использует неявную систему сборки на основе макета. Очень просто создать проект по умолчанию, поставить вещи там, где они ожидаются, и создать maven, протестировать и создать банки. В то же время, будучи неявным, также может быть сжимающим. Вы должны жить так, как это делает Maven.
- Бакминстер - Мне непонятно, как Бакминстер решает, что строить и как его строить. Казалось бы, это будет соответствовать процессу затмения для того, чтобы сделать то же самое. Бакминстер также допускает использование ant, но неясно, требуется ли это. По крайней мере, жизненный цикл меньше (un?), Определенный для хорошего или плохого, что обеспечивает большую гибкость.
- Оба инструмента позволяют создавать безголовые сборки, хотя buckminster может нести немного больше багажа вместе с ним.
-
Плагины
- Maven имеет очень обширный набор плагинов для всех этапов жизненного цикла для многих различных видов автоматизации: от генерации кода до запуска встроенных сервисов для тестирования.
- У Buckminster нет такой же концепции плагинов. Есть читатели и актеры, но они, похоже, не играют той же роли. Бакминстер должен иметь доступ к обширному набору плагинов для ant. Неясно, насколько хорошо действия ant могут быть легко интегрированы с остальными процессами Бакминстера (это также проблема для плагина maven ant).
-
Развертывание
- Maven имеет несколько плагинов для генерации дистрибутивов программного обеспечения (сборок) и перемещения их (вагонов). Бакминстер получает все это от Ant?
-
Сложность
- Различные схемы для Buckminster могут быть довольно сложными, между CPECs RMAPs MSPEC и т.д.
- Maven несколько проще в настройке, хотя он может стать сложным с большими и многомодульными проектами. У Maven также есть архетипы для легкого создания новых проектов.
-
Документация
- Они оба плохи.; -)
- Бакминстер очень мелкий, документально. Недостаточно примеров.
- Плагины Maven имеют очень плохую документацию, что затрудняет их работу.
С моей точки зрения, большинство из того, что я хотел бы сделать с Бакминстером, я могу сделать с Maven. "Материализация" из контроля версий - плюс, но разработчики внутри организации могут публиковать снимки maven в хранилище для совместного использования друг с другом, помимо предоставления фиксированных версий.
Кажется, что существует большая гибкость и свобода от стрессов жизненного цикла Maven (когда-либо хотелось добавить еще одну фазу, например, пост-тест для очистки? Должен ждать, пока они сделают это в ядре).
Что мне не хватает? Есть ли в Бакминстере какие-то большие функциональные возможности, которые стоят сложнее?
Есть ли какие-то дико неконкретные заявления выше (учитывая, что я не пользователь Бакминстера и только пользователь Maven с низким уровнем среднего)?