2013-12-24 6 views
26

Я читал this блог от Kent R.Spillner относительно инструментов для сборки java. Хотя я легко использовал Анта и Мейвена, я не поклялся никому серьезно, что я намереваюсь сделать. Есть ли сообщение в блоге, которое я связал с выраженным? Самое главное, следует ли использовать Maven или Ant для проекта среднего размера (приблизительно 20K LOC).Java Build Tools: Ant vs. Maven

+4

Эта статья очень старая. Используйте maven или gradle. – MariuszS

+9

«Лучший инструмент построения - это тот, который вы сами пишете ...», не слушайте, чтобы советовать так. Сборка достаточно сложная, и каждый разработчик не изобретает собственный способ создания своего кода. В этой связи именно поэтому Maven/Gradle могут победить ANT, они поощряют стандартизацию сборки. Попытайтесь поддержать более 4-5 проектов, и вы поймете, что это важно. –

+2

Очень жаль, что статья так высоко ценится в google для запроса «Ant vs Maven». ИМХО, все это отражается на гиперболе, которая может возникнуть только из-за изолированной работы, когда можно свободно изобретать колесо столько, сколько им нравится, не оправдывая добавленную сложность для своей команды. Термин «оптимизированный для философии» подскакивает при чтении. – DeaconDesperado

ответ

49

На самом деле это зависит. Maven и Ant просто разные подходы: императивные и декларативные (см Imperative vs Declarative build systems)

Maven лучше для управления зависимостями (но Ant нормально с ними тоже, если вы используете Ant + Ivy) и строить артефакты. Основное преимущество maven - его жизненный цикл. Вы можете просто добавить определенные действия на правильной фазе, что кажется довольно логичным: просто запустите свои интеграционные тесты на этапе интеграции-тестирования. Кроме того, существует много существующих плагинов, которые могут быть почти все. Арбитр Maven - это мощная функция, которая позволяет быстро создавать проект.

Ant лучше контролировать процесс сборки. Перед вашей первой сборкой вам нужно написать build.xml. Если ваш процесс сборки очень специфичен, вам нужно создать сложные сценарии. Для долгосрочных проектов поддержка ant-скриптов может стать очень болезненной: скрипты становятся слишком сложными, люди, которые их пишут, могут покидать проект и т. Д.

Оба из них используют xml, который может стать слишком большим в большом длинном -термические проекты.

В любом случае, вы хотите прочитать определенную документацию (не ненавистные статьи) на обоих. Кроме того, есть ant-maven-plugin, которые позволяют запускать ant-скрипты с maven.

P.S. Вы можете посмотреть на Gradle, который для меня может обеспечить больше свободы, чем Maven, но проще в использовании, чем Ant.