Ант все ще залишається в "мейнстрімі" для Java-версій?


14

Ми повільно замінюємо файли командних пакетів (windows .bat), які просто збирають класи, складені в розробниках IDE, на більш всебічні збірки Ant (тобто отримати з CVS, чисту компіляцію, jar, архів, електронну пошту тощо)

Я витратив багато часу на навчання (і налагодження проблем) з Ant, тому мені найзручніше використовувати його для виконання цих завдань. Але мені цікаво, чи все-таки Мурашка все ще користується такою широкою популярністю, як це було, коли я вперше почав вчитися, чи «світ перейшов» на щось нове (і, можливо, хитріше). (Я почав бачити більше розповсюджених матеріалів Maven, які я ніколи не використовував, наприклад.)

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

Я ніколи не перебуваю в курсі тенденцій, тому було б чудово почути від інших розробників Java те, що вони вважають найкращим інструментом побудови, і що вони думають, нові розробники повинні дізнатися.


Прочитайте всі відповіді нижче, і всі вони були чудовими! Дякуємо за розуміння того, що покращує Maven щодо Ant. Я загляну в Мейвен.
Сем Голдберг

Дуже мало проектів, які досить прості, щоб не вимагати тонн сценаріїв для мурашок. Мейвен обробляє багато цих речей стандартним чином.

Ant - це в основному сценарій оболонки в XML (і використання команд Ant замість команд shell).
користувач253751

Мураха - це неймовірна трата часу. Навіть коли Maven була жахлива, це був розумніший вибір. У Ant немає можливості інтегруватися в IDE, а проекти Java - це безлад файлів - ви витрачаєте 30% свого часу, просто перескакуючи з файлу в файл.
Полювання на Брайана

@bryanhunt: ми закінчилися використовувати Maven для всіх нових проектів. Однак я не знайшов Maven приємного способу створити пакет розгортання для додатків Java. (Це добре для копіювання залежностей, завантаження jar.) Більшість публікацій, які я читаю, відповідають на те, як це зробити, скажімо, використовуйте плагін Ant. Тож я вважаю, що я використовую мурашника для отримання остаточного результату з Мейвена. І, здається, набагато простіше це зробити в Ant, ніж використовувати плагін Maven Assembly.
Сем Голдберг

Відповіді:


23

Я погоджуюся з іншими, що Мейвен, схоже, взяв на себе найзначніші проекти, які я подивився.

Хоча Ant дуже гнучка, файл збірки не стандартизований, тому при переході до нового проекту чи компанії цілі називаються по-різному, файл структурується по-різному, між цільові залежності можуть бути встановлені, а можуть і не встановлюватися тощо.

З Maven ви також отримуєте вигоду від того, що не потрібно переносити бінарні залежності (я кажу про банки) навколо вашої системи SCM. Багато інших чудових інструментів Java знають, як читати файл Maven POM (перевага від стандартизації), тому такі інструменти, як IDE, можуть дуже швидко створити проект Maven, а такі інструменти, як Jenkins, можуть легко виконувати збірки Maven.


13
Слід також додати, що використання Maven робить наші проекти IDE-агностичними, і якщо ви коли-небудь були в магазині, де були війни з IDE, ви можете оцінити усунення цієї релігійної битви!
RonU

11

Я працював з Ент і з Мейвен. На мій досвід, Мейвен має дуже сильну перевагу над Мурахом.

  • Усі проекти, які я бачив останні 2 або 3 роки, здається, використовують Maven. Близько 3 років тому це змусило мене замислитися, тому що використовувані тоді версії Maven (2.0.що-то) здавалися досить ненадійними та гнучкими. В якийсь момент, хоча (2.1 або 2.2 не пам'ятаю), Maven став надійним, і через деякий час, проведений з ним, я передумав протилежне. Зараз я краще здивуюсь, побачивши когось, хто віддає перевагу мурашню над мавен.

Що стосується менш позитивної ноти щодо Maven, мій досвід його документації поки не був таким великим. Я думаю, що я бачив продукт із документацією гірше, ніж у Maven, але не можу пригадати, який із них (деякі старовинні бібліотеки CSV iirc).


2
Данно, я вважав, що довідник Мейвена є досить пристойним. Це не ідеально, і справді є темні незадокументовані куточки, але все-таки ІМХО - це значно краще, ніж в середньому.
Péter Török

@ PéterTörök справа Maven Reference - це також моя перша допомога. Якось, хоча більшість речей, які мене хвилюють, трапляються в цих темних незадокументованих куточках . Якщо бути точним, я вважаю ці куточки більш "темними", ніж "незадокументованими" - я маю на увазі, я відчуваю, що знання є, але я не можу його розшифрувати. Я не знаю, можливо, мені не пощастило. А може, німий. А може, хлопцям Мейвена просто не вистачає гідного письменника-техніка у своїй банді
гнат

1
Чому ви ніколи не бачили проекту з відкритим кодом, який мав гідного письменника-технолога? ;-)
Петер Тьорьк

@ PéterTörök так правда! :) Розкіш популярних проектів OSS полягає в тому, що навколо є багато хлопців-експертів, які "замінюють" doc писателя. Мені так було з Мейвен - завжди були якісь гуру, яких я міг би розпитати про хитрі речі
гнат

3

Ми використовуємо Maven вже кілька років. Він підтримує сценарії мурашок (подібно до того, як Ant підтримує BeanShell), тому ваші знання мурашок все ще можуть бути корисними. Maven набагато потужніший, але він має деякі додаткові інфраструктурні вимоги (ви хочете, щоб Artifactory або Nexus-сервер розміщував ваші побудови, якщо ви ділите компоненти між кількома проектами). Він також сильно відрізняється від Мурашника, тому ви не можете використовувати багато своїх існуючих знань.


1

Я думаю, що сам Мураш мертвий у воді; необхідність вручну вказувати всі ваші залежності від класового шляху (залежно від налаштувань) занадто ручна і далеко не схильна до помилок. Якщо Ant використовується поряд із інструментом управління залежностями, таким як Ivy, він зберігає свою силу та усуває необхідність вручну керувати своїми залежностями.

Інша проблема Ant з порівнянням з Maven - це відсутність стандартизації, про яку згадувалося в інших відповідях. При переході від проекту до проекту чи роботи на роботу однією з найприємніших речей, які я вважаю, є вивчення нового стандарту для різних файлів Ant. Мета Мейвена конвенція щодо конфігурації означає, що два різні проекти матимуть дуже схожу структуру, що робить перехід між ними набагато простішим, ніж з Ant.

Що стосується того, мураха все ще є основним, чи ні, це буде залежати від середовища розвитку, в якому ви працюєте. Якщо проект знаходиться в невеликій компанії або стартапі, я думаю, що Maven був би природним вибором і час може бути зайнятий інвестувати в інфраструктуру, таку як Артикафабрика. Однак великі компанії вкладуть багато років і багато грошей у свою інфраструктуру Ant (конфігурації, глобальні файли збірки тощо), що означає, що вони будуть менше прагнути відходити від технології, в яку вони вклали стільки грошей.


0

Мейвен був на підйомі вже багато років, і тепер мені потрібно це навчитися. Все завжди буде змінюватися, і знати, що Мураха втрачає свої позиції - це не погано.

Мейвен може бути недовговічним і швидшим, але якщо це полегшує нашу роботу, тоді варто вкласти час, щоб навчитися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.