З'ясувати залежність пакетів насправді не так складно. Ви все одно рідко це робите. Можливо, один раз під час налаштування проекту та ще декілька під час оновлення. З Maven ви в кінцевому підсумку виправляєте невідповідні залежності, погано написані poms і все одно робите виключення пакетів.
Не так складно ... для іграшкових проектів. Але проектів, над якими я працюю, є багато, насправді багато, і я дуже радий їх перехідним шляхом, щоб мати для них стандартизовану схему імен. Ручне управління всім цим вручну було б кошмаром.
І так, іноді доводиться працювати над зближенням залежностей. Але подумайте про це двічі, це не притаманне Maven, це властиво будь-якій системі, що використовує залежності (і я взагалі тут кажу про залежності Java).
Тож з Ant потрібно виконувати ту саму роботу, за винятком того, що ви повинні робити все вручну: захопити певну версію проекту A та її залежностей, схопити якусь версію проекту B та її залежностей, зрозуміти, які саме версії вони використовують, перевіряючи що вони не перетинаються, перевіряючи, що вони несумісні тощо. Ласкаво просимо в пекло.
З іншого боку, Maven підтримує управління залежностями і отримає їх для мене транзитивно, і надає мені інструменти, необхідні для управління складністю, властивою для управління залежностями : я можу аналізувати дерево залежності, контролювати версії, які використовуються в перехідних залежностях, виключати деякі з їх, якщо потрібно, керуйте конвергентом через модулі тощо. Ніякої магії немає. Але принаймні у вас є підтримка.
І не забувайте, що управління залежністю - лише невелика частина того, що пропонує Мейвен, є набагато більше (навіть не згадуючи про інші інструменти, які добре інтегруються з Мейвен, наприклад, Sonar ).
Повільний цикл FIX-COMPILE-DEPLOY-DEBUG, що вбиває продуктивність. Це мій головний захват. Ви внесете зміни, вам доведеться чекати, коли Maven Build запустить, і чекати, коли він розгорнеться. Жодного гарячого розгортання.
По-перше, чому ви використовуєте Maven так? Я не. Я використовую свій IDE для написання тестів, коду до тих пір, поки вони не пройдуть, рефактор, розгортання, гаряче розгортання та запуск локальної збірки Maven, коли я закінчу, перш ніж зробити зобов’язання, щоб переконатися, що я не буду порушувати безперервне збирання.
По-друге, я не впевнений, що використання мурахи зробить все набагато краще. На мій досвід, модульні побудови Maven за допомогою бінарних залежностей дають мені швидший час побудови, ніж типові монолітні побудови Ant. У будь-якому разі, подивіться на Maven Shell, щоб готово (повторно) використовувати середовище Maven (що до речі дивовижно).
Отже, і, на жаль, вибачте, що насправді Maven не вбиває вашу продуктивність, це ви неправильно використовуєте свої інструменти. І якщо ви цим не задоволені, ну, що я можу сказати, не використовуйте. Особисто я використовую Maven з 2003 року і ніколи не оглядався.