В чем реальная польза от make и ant? - PullRequest
6 голосов
/ 26 января 2010

Пока я занимаюсь разработкой на C / C ++ и Java, я просто делаю скрипт compile.bat, который делает все, что мне подходит. Почему я должен использовать make и почему я должен использовать ant?

Ответы [ 8 ]

22 голосов
/ 26 января 2010

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

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

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

4 голосов
/ 26 января 2010

С помощью файла сборки вы можете автоматизировать не только компиляцию кода; вы можете запускать модульные тесты, собирать метрики, артефакты сборки пакетов для развертывания и многое другое.

Преимущество Ant в том, что оно вдохновляет инструменты для других платформ - NAnt для .NET, Phing для PHP. Они делают то же самое и работают одинаково.

2 голосов
/ 26 января 2010

Причин может быть несколько: - потому что вы не единственный в проекте - потому что кто-то должен заботиться о сценарии сборки, когда вы уходите - потому что скрипт compile.bat не зависит от платформы - потому что политика проекта определяет технологию сборки, например, для всего предприятия

Недавно я прочитал забавную статью об инструментах сборки . Для вас может быть интересна только первая часть (до начала maven bashing)

2 голосов
/ 26 января 2010

Пока вы разрабатываете для себя под Windows: подходите себе.

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

1 голос
/ 26 января 2010

Во-первых, make и ant оба отслеживают, какие файлы уже скомпилированы, поэтому он не восстанавливает работу, если в этом нет необходимости.

0 голосов
/ 08 февраля 2010

Make и Ant действительно объединяются при использовании с автоматизированными системами сборки или непрерывной интеграцией.

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

Наличие определенного процесса сборки решает проблемы "Works on My Machine" (WOMM), которые возникают, когда приложение должно быть построено на машине, отличной от той, на которой оно было разработано. Это главный арбитр, когда один разработчик проверяет код, который не работает на компьютере другого разработчика. Если в процессе сборки не работает работающее программное обеспечение, первая регистрация разработчика была прервана. Если оно производит работающее программное обеспечение, то среда разработки второго разработчика нарушается - если не доказано иное.

0 голосов
/ 26 января 2010

Можно было бы использовать файл .bat - или bash, или другой вариант сценария оболочки - чтобы сделать все, что может сделать Ant, я полагаю. Но в Ant много чего проще сделать ...

  • создание / перемещение / удаление файлов и каталогов
  • применить жетоны фильтра
  • запустить юнит-тесты
  • правильно упакуйте банку, молнию или войну

Многие проекты должны делать эти вещи, помимо компиляции, при сборке.

Кроме того, Ant не зависит от платформы, поэтому вы можете сотрудничать с теми, кто использует другие операционные системы.

Но зачем останавливаться на муравье? Apache Maven предлагает еще более привлекательные функции.

0 голосов
/ 26 января 2010

Вы получаете некоторую нейтральность к платформе (как я могу запустить ваш пакетный скрипт на моем linux-box). Но еще важнее: инструменты сборки поддерживают разрешение зависимостей. В сценариях этого нет, и их нужно создавать самостоятельно.

Скажем, у вас есть цели A, B и C. Обе B и C зависят от A. В скрипте они вызывают подпрограмму A. Если вы сейчас создадите новую цель D, которая зависит от B и C, вы выполните ее. А дважды. Инструменты сборки распознают это и выполняют A только один раз.

Поскольку эта ситуация типична для задач, включающих компиляцию, сборку дистрибутива, тестирование, сборку документации и т. Д., Инструменты сборки полезны для разработки программного обеспечения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...