Здравствуйте, LeonidV, Вы писали:
LV>antrun это костыль в maven. Если вам надо не хватает какого-то действия сборки, maven way — написать mojo (то есть свой плагин). Причем mojo еще можно хорошенько протестировать. LV>Если у вас сборка какая-то мега необычная, то maven не тот инструмент, который вам нужен. Из классических — ivy, из новых — gradle и ему подобные.
Проблема в том, что в проекте обычно не нужен maven way. Нужен надёжный, повторяемый билд с автоматическими тестами, развёртыванием, и.т.д.
LV>Это далеко не стандарт и даже не рекомендация/спецификация.
Де-факто -- это всё-таки стандарт.
LV>Никто вам его не навязывает (ну или не навязывает тому, кто навязывает вам, ну или не навязывает ... ). Выбор того или иного инструмента в проект — это обязанность лица, принимающего решения. Который сначала должен хорошенько подумать, прежде чем что-то решить.
Вне зависимости от этого, Maven -- довольно таки отвратительный инструмент.
LV>Я думаю, что 90% или даже 99% проектов спокойно описываются maven'ом без каких-либо проблем. Особенно если они пишутся с 0, а не переводятся с ant'а, например.
Это какие-то простые проекты. Даже такая банальная вещь, как подсчёт покрытия тестами делается в Maven довольно нетривиально (если надо посчитать покрытие по интеграционным тестам, например, а не по каждому модулю в отдельности).
LV>И еще раз подчеркну — если вы отходите описания проекта и переходите к описанию сборки, то вам нужно как минимум протестировать различные варианты поведения. В случае описания проекта, тестировать приходится значительно меньше.
Да, это так. Но просто собрать JAR-у достаточно только для очень простого проекта. Обычно требуется ещё запуск автоматических тестов на разных окружниях, подсчет покрытия, отчеты.
И даже в случае простого проекта Maven справляется довольно плохо. Объем скриптов огромен, много повторения, много несущественных деталей, редактировать скрипты просто неудобно. Много тонкостей, которые надо знать.