Подтвердить что ты не робот

Является ли Ant лучшим выбором для инструмента построения Java?

Из моего небольшого опыта я использовал Ant как инструмент построения. Есть ли другие проекты, которые лучше, и почему?

4b9b3361

Ответ 1

Maven

Это намного лучше, чем ant, потому что для большинства распространенных задач вам не нужно писать сложный файл build.xml, maven имеет очень хорошие настройки по умолчанию и все это согласуется с конфигурацией.

Он также имеет большое центральное хранилище библиотек, и его очень легко настроить, например, "использовать новейшие стабильные общедоступные ресурсы". Затем Maven загрузит последнюю стабильную версию (больше не будет проверять банки в VCS), и если будет выпущена новая версия стабильной версии, она также загрузит ее. Конечно, так же легко заблокировать его до определенной версии, если вам это нужно.

Он также хорошо интегрирован как с Netbeans, так и с Eclipse (плагин m2eclipse), поэтому среда ID выполняет все настройки (включая зависимости), которые вы объявляете в файле pom.xml.

Есть также некоторые недостатки для maven: некоторые плагины довольно плохо документированы, интеграция с обоими IDE на самом деле не идеальна, и по-разному некоторые сообщения об ошибках могут быть трудно понять.

Ответ 2

Ant по-прежнему остается основным игроком. По моему опыту, это доминирует. Кроме того, с Айви, он обрабатывает некоторые сильные стороны Maven. IMO, Ant станет основой для других инструментов: XML слишком жесткий (см. Ссылку ниже).

Maven 2 также является крупным игроком. Я знаю людей, которым это очень нравится, и ощетинившись критикой, которая была верна для Maven 1 (она прошла долгий путь).

Groovy предлагает некоторые интересные вещи в пространстве сборки, потому что они построены на Ant. Гант используется в Grails, но может быть включен в Gradle. Они также могут использоваться для Java.

рискуя обрести собственный блог, вот сообщение о Gant и Gradle. Вот ссылка на очень актуальные дискуссии об их будущем.

Ответ 3

на предприятии, ant по-прежнему является игроком. зависимости не меняются быстро. в отличие от проектов с открытым исходным кодом, которые продолжают переходить к совершенно новой версии зависимых банок, предприятия MOST стараются не слишком быстро менять свои зависимости. Учитывая, что преимущества maven не слишком велики по сравнению с ant.

И снова, если вы хотите использовать некоторые функции maven, ant люди имеют плющ (http://ant.apache.org/ivy/) для функции зависимостей.

ЕСЛИ вы хотите продолжить использование ant, получите "ANT IN ACTION", второе издание, чтобы вы могли использовать ant для максимальной производительности.

Удачи,

Ответ 4

Некоторым людям нравится Ivy, который является управляющим веществом для Ant, поэтому я полагаю, что люди, приходящие из Ant фон понравится.

Другие, такие как Buildr. Это вещь JRuby, поэтому, если вы можете жонглировать Ruby и Java в тех же проектах, я полагаю, это будет интересно.

Лично я просто использую Maven. Легко взломать файл pom.xml по умолчанию и иметь все команды сборки в вашем распоряжении. И когда проект растет, у вас уже есть инфраструктура для запуска плагинов и добавления зависимостей.

Ответ 5

У вас также есть Gant. Gant Groovy + Ant, вы можете записать свои задачи в обычном Groovy, и вы также можете вызвать любую задачу ant. Если вы являетесь магазином Java и хотите повторно использовать навыки ant, которые у вас есть, но не нравятся XML, я рекомендую Gant, его легко настроить, и вы можете встроить его в ant (а также вызвать gant из ant)..

Ответ 6

Мне очень нравится SCons, который является инструментом сборки, файлы конфигурации которого являются всего лишь скриптами Python. Это понравится всем, кто знает Python или аналогичные языки сценариев. SCons разработан, чтобы хорошо работать с Java, а также C/С++ и другими языками, и я был очень доволен этим в прошлом.

Поскольку файлы SCons написаны на Python, вы можете написать произвольный код Python, если вам нужно сделать что-то особенное. Однако, если вы полностью не знакомы с Python, тогда, возможно, будет более высокая кривая обучения, чем попытка расширить Ant или что-то подобное, чтобы делать то, что вы хотите.

Ответ 7

Maven2, похоже, все впереди.

Однако для наших проектов мы возвращаемся к ant везде, где это возможно.

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

И это боль, чтобы проверить все лицензии, включенные в зависимости зависимостей, которые могут быть привлечены.

И может быть медленнее время запуска, так как вам нужно самостоятельно определять зависимости, но, по крайней мере, легко читайте. Здесь нет волшебства:)

Если вы используете maven, подумайте о внутреннем репозитории, таком как Nexus. Таким образом, ваше программное обеспечение не умерло, если некоторые библиотеки решили уйти от сети *.

* Мы сожгли maven1; переадресация репозитория ibiblio maven1 и maven1 не поддерживает перенаправления: (

Ответ 8

Я бы посоветовал вам начать с ваших требований при рассмотрении правильного инструмента. Каждый проект отличается, используемый вами инструмент должен отражать проблемное пространство, а не мода.

Считаю, что для общего использования ant по-прежнему, вероятно, лучший общий инструмент для создания Java-приложений. Он часто используется эффективно с другими инструментами для управления зависимостями, но мы снова переходим в решение без проблем.

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