Если вы намереваетесь оставаться «магазином для одного человека», и ваши проекты, как правило, небольшие, то вы, вероятно, можете обойтись без использования собственной системы сборки. Я бы по-прежнему рекомендовал этого не делать, поскольку иметь опыт работы с часто используемыми средами сборки - это хорошо иметь в своем резюме.
Я написал специальную систему сборки, которую мы использовали на работе около пяти лет назад для обработки некоторых довольно сложных многоцелевых сборок, которые у нас есть. Мы используем его с 2003 года и продолжаем его использовать. Тем не менее, я пытался переместить его в сторону Ant или даже Make по следующим причинам:
- Система сборки, которую я написал, работает на Windows, и нам нужны другие платформы. Его можно было бы переписать так, чтобы он довольно легко выполнялся в другом месте, но код управления процессами трудно переносить легко.
- Интеграция в среду CI является проблемой, если вы используете полностью настраиваемую среду.
- Добавление поддержки для различных SCM технологий - несложная задача. До сих пор нам требовалась поддержка Visual SourceSafe, Subversion и Perforce.
- Расширение и поддержание этого - большая работа, которую "не добавляет никакой ценности для клиента" .
Теперь наша среда немного сложнее, чем большинство, поскольку мы занимаемся разработкой встраиваемых систем, поэтому нередко бывает, что сборка одного продукта состоит из двух или трех различных цепочек инструментов в Windows, а оболочка для Linux-машины через ssh. для цели только для Linux и psexec на удаленной машине Windows для использования компилятора с блокировкой узла. Очень забавно оглянуться назад и подумать, что система сборки, которую мы начали с одного пакетного файла, была переписана с использованием Perl для размещения смеси декларативных операторов и операторов языка программирования, а затем снова написана в декларативном XML-подобном XML стиль, который обстреливает партию или раковину. Теперь я думаю о замене всего этого на Ant + Maven + Ivy или какую-то похожую цепочку.
Использование моей собственной системы сборки было для меня правильным решением в то время, когда мы были довольно маленьким магазином, занимающимся сборкой, основанной главным образом на инструментах командной строки, и в то время не было широкого набора инструментов, доступных. Сегодня, однако, я бы порекомендовал внимательно и внимательно взглянуть на доступные инструменты. В конце концов, написание вашей собственной системы сборки означает, что вы будете тратить время и деньги на написание и обслуживание, а не на рабочий код .
Сегодня для этой задачи доступно множество инструментов, которые справляются практически с любой извращенной идеей, которую вы можете придумать. Я думаю, что время, потраченное на изучение существующей системы и расширение ее для удовлетворения ваших потребностей, вероятно, более целесообразно. Я нашел опыт написания заданий Ant довольно интересным. В целом, это был хороший опыт обучения, хотя я делал это на контрактной работе, в которой Ant и CruiseControl использовали для публикации документов.