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

Что такое программное обеспечение для автоматизации сборки (например, Ant)?

Я вижу ссылку ant много, но я не понимаю, что она должна делать? из того, что я слышал, что он должен скомпилировать ваши проекты, но не могу ли я просто сделать это, нажав Run- > Run in eclipse?

Изменить: Я думаю, я должен перефразировать мой вопрос. Я уже знаю, что ant является "программным обеспечением для автоматизации сборки", на мой вопрос: что такое автоматизация сборки? Я думал, что вы должны протестировать свое приложение, и когда он запускается, вы нажимаете кнопку "build" в eclipse или через java-интерфейс командной строки, и из него выходит файл .jar? Итак, зачем вам "автоматизировать" этот процесс?

4b9b3361

Ответ 1

Я уже знаю, что ant является "программным обеспечением автоматизации сборки", на мой вопрос: что такое автоматизация сборки? Я думал, что вы должны протестировать свое приложение, и когда он запускается, вы нажимаете кнопку "build" в eclipse или через java-интерфейс командной строки, и из него выходит файл .jar? Итак, зачем вам "автоматизировать" этот процесс?

Не все разработки Java выполняются через eclipse, и не все банки могут быть построены из командной строки (или должны быть построены из командной строки).

Вам может потребоваться дополнительно запустить тестовые примеры, модульные тесты и многие, многие другие процессы.

Что ant делает, предоставляет механизм для автоматизации всей этой работы (так что вам не нужно делать это каждый раз), и, возможно, вы можете вызывать этот ant script каждый день в 18:00

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

  • Подключиться к серверу subversion.
  • Загрузка/обновление с последней версией
  • Скомпилировать приложение
  • Запустите тестовые примеры
  • Упакуйте приложение (в банке, войне, ухе и т.д.)
  • Зафиксируйте эти бинарные файлы для подрывной деятельности.
  • Установить приложение на удаленном сервере
  • Перезагрузите сервер
  • Отправьте электронное письмо с резюме работы.

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

Ответ 2

rogeriopvl абсолютно корректен, но для ответа на ваш вопрос "не могу ли я просто сделать это, нажав Run- > Run in Eclipse?" вопрос: это прекрасно для проекта, над которым вы работаете самостоятельно, и не нуждается в повторяемой сборке сценариев в нескольких средах.

Если вы работаете над проектом с открытым исходным кодом, или профессиональное программное обеспечение, которое должно быть в состоянии построить на сервере сборки и т.д., требующее, чтобы определенная среда IDE была запущена, это не очень хорошая идея.

Ответ 3

Ant используется для автоматизации процесса сборки, но процесс сборки часто намного больше, чем компиляция. Ant имеет "задачи", которые могут использоваться для выполнения различных полезных функций. Вы можете создать свою собственную задачу, чтобы сделать что угодно, написав класс java и сообщив Ant, где его найти. Затем вы можете смешивать и сопоставлять эти задачи для создания целей, которые будут выполнять набор задач.

Вы также можете настроить динамическую среду для создания своего приложения. Вы можете настроить файлы свойств для хранения переменных, которые могут использоваться в процессе сборки, то есть для хранения путей к файлам, путей классов и т.д. Это полезно, например, для различения тестовых и производственных сборок, где пути развертывания, экземпляры базы данных и т.д. может измениться. Ant также включает управление потоком (если и т.д.)

Некоторые вещи, которые я видел Ant do:

  • Компилировать код
  • Используйте элемент управления версиями для проверки последней версии или для маркировки создаваемой версии.
  • Запустите sql-скрипты для сборки или восстановления тестовой базы данных
  • Скопировать файлы из внешнего ресурса для включения в проект
  • Код пакета в файл баннера, войны или уха.
  • Разверните веб-приложение на сервере приложений.
  • Перезапустить сервер приложений
  • Выполнить тестовый пакет
  • Статический анализ, т.е. CheckStyle или PMD
  • Отправьте сообщение электронной почте в команду, чтобы предупредить их о сборке.
  • Генерировать файлы на основе информации из сборки.
    • Пример: у меня есть jsp в моем приложении, которое ничего не делает, кроме отображения информации о версии/сборке. Он создается Ant при запуске сборки, и команда производственных операций проверяет эту страницу при развертывании приложения, чтобы убедиться, что они развернули правильную сборку.

Ответ 4

Во многих крупных компаниях (и, вероятно, некоторых более мелких) вы обнаружите, что производственный код не создан людьми, которые его разработали. Вместо этого разработчики могут проверить свой код в репозитории исходного кода и пометить его. Затем они передают этот тег команде сборки.

Команда сборки в отдельной (чистой) области - возможно, на каком-то безголовом сервере (т.е. без GUI) - проверит код и запустит конструкцию script. Строка script будет полностью независимой от среды рабочего стола/среды IDE.

Это гарантирует, что ничто, что происходит на одном компьютере разработчика, не "загрязняет" сборку. (Или, что более вероятно, для управления системой не требуется ничего внешнего контроля!)

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

PS. Вы также можете взглянуть на идею Непрерывная интеграция

Ответ 5

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

И теперь для долгого ответа... Меня привели в несколько проектов без какого-либо чувства самостоятельной сборки. В одном проекте был один парень, который не был разработчиком, которому было поручено создавать и развертывать программное обеспечение. Он создал 147 отдельных оконных файлов окон для компиляции каждого EJB, каждого сервлета и каждого клиентского компонента. Для этой сборки не было ошибок. Все сообщения журнала, в том числе сообщения об ошибках, попадали в стандартную версию. Он должен был распознать вручную, прочитав этот журнал, какое исключение или напечатанное сообщение было нормальным, а какое сообщение было ошибкой. Ему также пришлось развернуть это программное обеспечение, которое он только что построил. Развертывание было одинаково сложным, так как было несколько уровней с балансировкой нагрузки. Каждый модуль должен был быть размещен в нужном месте вручную с настройкой параметров, чтобы соответствовать уровням ниже по течению и вверх по течению. Построение и развертывание этого программного обеспечения заняло у него по крайней мере 3 дня с использованием этого метода. Конечно, только тогда можно было бы определить, работает ли сборка. Обычно после этого периода все программисты собирались отлаживать сборку. Программисты скажут, что мой модуль отлично работает в моей среде IDE. Я просто нажимаю run, как это, смотрите?

Действительно, отдельные программные модули обычно работали, но сборка и развертывание были ужасно неэффективными. И так же плохо, для всех одинаково сложно развертывать сборку в нескольких окружениях. Руководство скажет, хорошо, теперь у вас есть эта сборка, работающая в нашей среде тестирования регрессии. Теперь разворачивайте ту же самую сборку в этой другой среде, чтобы ребята из отдела продаж могли демонтировать и продвигать программное обеспечение. Это должно быть просто сделать, но также потребовалось как минимум 2 дня, а затем "отладка сборки". Сборка и развертывание никогда не были простыми и никогда не точными. Это действительно замедлило проект.

В любом случае мы заменили всю эту процедуру полным механизмом сборки и развертывания на основе Ant. Конечным результатом было то, что полная сборка могла быть создана и развернута менее чем за 30 минут, полностью автоматизирована. Парень QA, управляющий сборками и развертываниями, может содержать доску, в которой была создана среда, в которую была развернута эта структура, и какая группа использовала эту среду. Это было что-то, что было невозможно в старой системе.

Ответ 6

Ant предназначен для автоматизации процессов сборки программного обеспечения:

http://en.wikipedia.org/wiki/Apache_Ant

Ответ 7

Ant позволяет создавать CRISP (полные, повторяемые, информативные, планируемые, переносные) сборки. Вы можете найти отличную информацию об этом в этой презентации Майка Кларка и в его книге Pragmatic Project Automation.

Ответ 8

Ant - это инструмент сборки, похожий на make файлы (хотя и с очень разным синтаксисом в XML). Если вы используете только Eclipse, все в порядке, и вы всегда можете преобразовать файл сборки Ant в проект Eclipse (конфигурации запуска Eclipse тогда, если я правильно помню, эквивалент Ant целей сборки).

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

Ant также может использоваться для регулярных автоматических сборок (вы не хотели бы нажимать Run in Eclipse каждую ночь, так?:))

Ответ 9

Если кто-то рядом с вами, я думаю, вы получите много чего из CITCON, конференции непрерывной интеграции и тестирования. Вы можете поговорить с большим количеством людей о преимуществах автоматизации, применяемой к строительству и тестированию программного обеспечения.

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

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

Лучше, потому что компьютеры действительно очень хорошо делают то же самое каждый раз. (Люди склонны сосать на это.)

Дешевле, потому что у вас меньше ошибок, и ошибки, которые происходят, улавливаются раньше и поэтому дешевле исправить.

Ответ 10

Вы также ссылаетесь на " Экспорт ant файл сборки.

Если вы создаете свой собственный ant script для создания приложения вне eclipse, вы можете написать свои собственные цели, которые используют задачу Ant для делегирования к сгенерированному build.xml.

Кроме того, вы можете сконфигурировать конструктор проекта (project properties » Builders) для запуска любых script (ant или иначе), которые вы хотите при создании проекта, вручную или автоматически.

Ответ 11

Джоэл (Спольский) отличная статья на тему "Тест Джоэла". Многие из них вращаются вокруг того, чтобы делать важные вещи часто, быстро и надежно. Одна из этих вещей - ваша сборка.

Ответ 12

Eclipse использует ant для создания, запуска, развертывания,...

"Ant - это инструмент построения на основе Java. Теоретически это похоже на Make, без Make морщин и с полной переносимостью чистого кода Java". (from текст ссылки