Страницы

воскресенье, 28 августа 2011 г.

Настройка сборки проекта за 5 минут - UppercuT.

  Кому приходилось настраивать сборку проекта с помощью msbuild или nant понимает нудность этой задачи. А кроме того, для особо сложных сборок этот путь громоздок и тернист. Если кто не верит, может ознакомится с огромными build-файлами NHibernate тут и тут.
  И вот, настал очередной раз возникла нужда настраивать сборку проекта... Писать очередную xml портянку не хотелось, и я полез в гугл. На самом деле, инструментов для сборки оказалось довольно много: MsBuild, nant, NuBuild, Psake, FAKE (F# MAKE)Rake, UppercuT.
  С msbuild, nant и nubuild были отвергнуты сразу: старая добрая xml-конфигурация не казалась мне такой уж доброй, и разные ее вариации не делают ее добрее.
  Psake - сборка проекта на основана на powershell скриптах. Уже лучше, но чтобы выполнять скрипты пришлось на каждом компьютере настраивать разрешения для их выполнения. Не сложно, но не хотелось бы.
  Fake & Rake - конфигурация сборки на языке F#. Серьёзно к ним присматривался, но видимо потребуют некоторого времени на изучение.
  В итоге остановился на UppercuT - автор обещал возможность настроить сборку проекта за пять минут. И не обманул. Настроить сборку оказалось в разы быстрее, чем написать этот пост :)
Итак, пять простых шагов, как настроить сборку с помощью:
  1. Uppercut формирует версии сборок  проекта используя файл SolutionVersion.cs. Вот этот файл нам и надо созадать в корневой папке Solution'а. И далее подключить этот файл как ссылку(!) ко всем проектам. 
  2. Далее идём на страницу UppercuT, и качаем архив с последней версией (или не последней, кому как нравится). Находим в архиве папку Uppercut, и копируем всё ее содержимое в корневую папку solution'a. 
  3. Теперь всё-таки придётся заняться xml. Среди скопированных папок найти папку settings,  а в ней открываем файл Uppercut.config. Заполняем четыре свойства, которые понадобится uppercut'у чтобы сгенерировать SolutionVersion.cs:
    <property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
      <property name="path_to_solution" value="." overwrite="false" />
      <property name="repository.path" value="__REPOSITORY_PATH__" overwrite="false" />
      <property name="company.name" value="__COMPANY_NAME__" overwrite="false" />
    Всё достаточно очевидно. Отмечу только, что сейчас поддерживаются git и svn репозитории. Соответствующий url и надо вписать в конфигурацию. Поскольку я собирался билдить проект прямо из папки решения - поставил в repository.path точку. И это сработало. :)
  4. Прописываем в переменную среды PATH путь к утилите командной строки контроля версий. В моем случае git - C:\Program Files\Git\bin
  5. Запускаем build.bat из корневой папки решения. Наслаждаемся результатом.
  Мне понравилось. Почти не приложив усилий - получаем настроенную сборку проекта. Не только комплияцию, но и прогон тестов, и проверку покрытия с помощью NCover. Не уверен, что для больших и сложных проектов такой способ подойдет, но для простых очень даже хорош.
  Немного изучив содержимое папки lib, удалил оттуда лишнее: xUnit, MbUnit, Eazfuscator и MoMA. Чуть позже попробую настроить создание nuget-пакета с помощью UppercuT. А дальше в планах изучить fake и rake.
PS. Проект о котором идёт речь всё тот же - EventPublisher.

Комментариев нет:

Отправить комментарий