(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Автоматизированная сборка проектов на Delphi с помощью WANT

Источник: delphiplus
Игорь Фомин

WANT (sourceforge.net/projects/want) - Open Source система для автоматизированной сборки, тестирования и упаковки проектов, написанных на Borland Delphi (замена make). Система WANT сама написана на Delphi и является аналогом Jakarta Ant для Java.

WANT позволяет выполнять следующие задачи:

  • сборка проекта
  • создание/копирование/удаление каталогов и файлов
  • архивация файлов
  • операции с CVS
  • unit-тестирование
  • операции с ini-файлами
  • запуск приложений

Описание процесса сборки хранится в файле want.xml.

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

Задачи запускаются на исполнение из командной строки:

want.exe <имя_задачи>

Рассмотрим пример использования WANT.

Создайте папку, в ней должны располагаться файлы want.exe и want.xml, проект Delphi с именем Test положите в папку source.

Что же содержит файл описания процесса сборки - want.xml?

Первый тэг - описание проекта и его свойств, корневой папки проекта (basedir) и задачи по умолчанию (default).

<project name="test"
   basedir="."
   default="help">

описываем свойство "дата сборки проекта"

<tstamp>
   <format property="date.build" pattern="yyyy_mm_dd" />
</tstamp>

Перечисляем необходимые свойства. Все свойства задаются в формате имя (name) и значение (value). Можно использовать значения свойств, определенных выше, для это существует формат записи ${имя_свойства}

<property name="src" value="${basedir}/source" />
<property name="tmp" value="${basedir}/tmp" />
<property name="dist.dir" value="${basedir}/dist" />
<property name="dist.name" value="${dist.dir}/test_${date.build}.zip" />
<property name="dist.src.name" value="${dist.dir}/test_src_${date.build}.zip" />

Описываем задачу. Внутри перечисляем, что нужно выполнить. Здесь осуществляется только вывод текста на экран.

<target name="help">
   <echo message="this builds test" />
</target>

Еще одна задача - создание каталогов (mkdir), ее параметр - имя создаваемого каталога (dir).

<target name="prepare">
   <mkdir dir="${dist.dir}" />
   <mkdir dir="${tmp}" />
</target>

Задача компиляции проекта (compile) зависит (depends) от задачи prepare. Порядок исполнения - сначала prepare, потом compile. Задача компиляции включает в себя два этапа: dcc (консольный компилятор) и exec (запуск приложения).

У dcc следующие параметры:

  • Basedir - каталог, относительно которого будет осуществляться компиляция
  • Source - имя проекта Delphi
  • dcuoutput - каталог для dcu файлов
  • warnings - отображение предупреждений компилятора

Параметры exec:

  • Basedir - каталог в котором будет запущена программа
  • Executable - имя программы
  • Arg - аргументы

<target name="compile" depends="prepare">
   <dcc basedir="${src}" source="test.dpr">
     <dcuoutput path="${tmp}" />
     <warnings value="True" />
   </dcc>

   <exec basedir="${src}" defaultfilters="true" executable="upx.exe">
     <arg value="--best" />
     <arg value="-q" />
     <arg value="test.exe" />
   </exec>
</target>

Задачи формирования архивов с исходниками проекта и скомпилированного приложения:

  • Delete - удаление файлов
  • Zip - создание архива. Файлы в него можно добавлять (include) и игнорировать (exclude)
   <target name="dist_src" depends="prepare">
     <delete file="${dist.src.name}" />
     <zip zipfile="${dist.src.name}">
       <include name="${src}/*.pas" />
       <include name="${src}/*.dfm" />
       <include name="${src}/*.dpr" />
       <include name="${src}/*.dof" />
       <include name="${src}/*.res" />
       <include name="${src}/*.cfg" />
       <include name="${src}/*.todo" />
       <include name="want.xml" />
     </zip>
   </target>

   <target name="dist" depends="prepare,compile">
     <delete file="${dist.name}" />
     <zip zipfile="${dist.name}">
       <include name="${src}/*.exe" />
       <include name="${src}/*.mdb" />
       <include name="${src}/*.dbf" />
       <include name="${src}/*.fr3" />
       <include name="${src}/*.ini" />
     </zip>
   </target>

   <target name="all" depends="dist,dist_src">
   </target>
  </project>

Сохраняем файл и в консоли набираем want all. В результате должны выполнится все перечисленные задачи (см. рис).

В случае ошибки при выполнении любой из задач выводится сообщение об ошибке и сборка прекращается.

Остальные действия в WANT описываются аналогично.

На данный момент документации по WANT немного, поэтому лучшим вариантом будет изучение исходников с sourceforge, а также документации на Ant (jakarta.apache.org/ant/index.html).

Ссылки по теме

Файлы для загрузки


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 13.05.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
TeeBI for RAD Studio Suite with source code single license
ABBYY FineReader 14 Standard Full
Business Studio 4.2 Professional. Персональная лицензия. Лицензия на 1 месяц.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Adobe Photoshop: алхимия дизайна
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100