2010-01-29 4 views
5

Я не большой поклонник таких инструментов, как Ant, но они, безусловно, полезны. В текущем проекте C++ у меня вообще нет процесса автоматической сборки - я просто создаю свой рабочий каталог с помощью Visual studio, застегиваю папку/bin и отправляю ее для установки. Проект достаточно мал, это работает нормально, но он полностью зависит от меня, зная проект наизнанку.Простая автоматизация процессов на Windows

Я хотел бы систему, которая может сделать шаги, как:

  • обновление нескольких SVN рабочих директорий в указанную версию (или по умолчанию на голову)
  • выполнения Doxygen (или подобный инструмент), чтобы получить API документы до даты
  • совершают API документы в какое-то SVN репо
  • построить несколько проектов в правильном порядке
  • копии некоторых вещи о, удалить ненужные файлы
  • файлы/папки пакета в zip/папку, названные в соответствии с указанной пользователем версией, или найденные из файла/SVN

Бесплатно важно. Простота использования - другая. Windows важна, и это не включает опции cygwin.

Мне показалось, что вы, вероятно, можете сделать это с использованием .bat-файла, является жизнеспособным вариантом того, что все еще является довольно небольшим проектом (1-4 разработчиков)?

+0

Ничего особенного C++ здесь - удаленный тег и измененный заголовок. – 2010-01-29 14:40:12

+0

Хм, я думаю. Получил ли я мышление, является ли Ant-язык независимым? –

+0

Это так. Он даже имеет своего рода расширение для создания проектов на С ++. –

ответ

3

cmake является инструментом выбора для любых os в эти дни. Ничто другое не приближается. Вы должны ввести описание своего кода на высоком уровне, а cmake будет генерировать VS/проекты VS и make-файлы для всех узлов или cygwin.

NSIS: тон проектов с открытым исходным кодом/закрытых источников использует NSIS для создания инсталляторов для окон - это неплохо, а строитель можно легко запустить из командной строки, поэтому вы можете интегрировать его с cmake.

+0

У меня уже есть VS решение/проекты, тщательно настроенные. Будет ли это хорошо играть с этим? –

+0

Ну, cmake хотел бы создать собственное решение и проекты - вы можете настроить много материала на абстрактном уровне. Вам, вероятно, придется переносить конфигурацию на cmake. –

+0

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

1

Я рекомендовал бы CMake:

http://www.cmake.org/

Это довольно стандартная система сборки, если вы привыкли к зависимости систем сборки на основе.

Если вы более экспериментальным (и наслаждаться кодирования рубин) Рейк отличная альтернатива:

http://rake.rubyforge.org/

Martin Fowler имеет большое введение в инструменте здесь: http://martinfowler.com/articles/rake.html

2

Если вы используете Visual Studio (только), вы можете использовать его встроенный процесс сборки в пакетном режиме (тип devenv /? в вашем cmd). Этого было бы достаточно для создания вашего проекта на C++ и решения всех зависимостей C++, которые являются наиболее сложными.

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

Также, пожалуйста, прочитайте это 2 статьи:

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system

http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2

+0

Заинтересованы в мыслях других людей по этому виду решений ... это один из вариантов, который я имел в виду, увидев, как некоторые крупные стабильные коммерческие приложения основывают свою сборку/развертывание на простых .BAT-файлах. –

+0

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

+0

Я бы сказал, что он очень хорошо масштабируется, если у вас есть все в проектах VS.Net.Мы используем его для проекта ~ 1MLOC. Если вы имели дело с еще более крупными проектами, тогда есть также дополнительные опции, такие как Incredibuild для распределенных сборок. –

1

Если у вас есть запасной ящик для запасных, я хотел бы предложить Nant и [CruiseControl.net]. Вам не обязательно обязательно использовать его для непрерывной интеграции, вы можете настроить свои сборки для запуска [только при принудительной]. Оба являются открытым исходным кодом, имеют встроенную поддержку SVN и довольно просты в использовании. Я использовал Nant & CruiseControl.Net для каждой вещи, которую вы указали, кроме задачи doxygen. Даже без запасной коробки я бы предложил использовать Nant для автоматизации вашего пути из того, что выглядит как долгая серия ручных задач.

1

Visual Studio по-прежнему поставляется с копией Nmake, которая является классическим инструментом правил построения зависимостей. Я могу создавать ваши проекты Visual Studio с помощью devenv, а также делать много других вещей. Все, что вы можете сделать с командной строкой, вы можете сделать с nmake. И у него довольно хороший макроязык.

4

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

У Hudson есть встроенная поддержка для запуска оконных скриптов и с удовольствием работает с NANT или cmake через плагины. Если вы еще не плагин для чего-то, что вы хотите сделать, вы можете легко выполнить его, если это обычно можно сделать из командной строки.

Пожалуйста, обратите внимание: проект Хадсон был переименован Jenkins

+0

+1 для Хадсона. Учитывая, что у вас есть файлы проекта VS.Net, вы можете создавать их из командной строки с помощью 'devenv' или' msbuild', поэтому очень быстро настроить автоматическую систему сборки, вызывая пакетный скрипт с помощью Hudson –

1

Использование http://www.finalbuilder.com в качестве buildserver, легкий, пользовательский friendy и лучше всего, нет XML не взлом!

Смежные вопросы