Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laba_4_OPI

.docx
Скачиваний:
22
Добавлен:
20.03.2016
Размер:
27.49 Кб
Скачать

Национальный исследовательский университет

Информационных технологий, механики и оптики

Кафедра вычислительной техники

Лабораторная работа №4

Работу выполнили

Шолохова Е. К.

Аслами К. З.

Группа 2101

Работу проверил

Кляус С.М.

2013

Написать сценарий для утилиты Apache Ant, реализующий компиляцию, тестирование и упаковку в jar-архив кода проекта из лабораторной работы №3.

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

Cценарий должен реализовывать следующие цели (targets):

  1. compile - компиляция исходных кодов проекта.

  2. build - компиляция исходных кодов проекта и их упаковка в исполняемый jar-архив. Компиляцию исходных кодов реализовать посредством вызова цели compile.

  3. clean - удаление скомпилированных классов проекта и всех временных файлов (если они есть).

  4. test - запуск junit-тестов проекта. Перед запуском тестов необходимо осуществить сборку проекта (цель build).

  5. music - воспроизведение музыки по завершению сборки (цель build).

  6. history - если проект не удаётся скомпилировать (цель compile), загружается предыдущиая версия из репозитория svn. Операция повторяется до тех пор, пока проект не удастся собрать, либо не будет получена самая первая ревизия из репозитория. Если такая ревизия найдена, то формируется файл, содержащий результат операции diff для всех файлов, измёненных в ревизии, следующей непосредственно за последней работающей.

Apache Ant — утилита для автоматизации процесса сборки программного продукта.

Управление процессом сборки происходит посредством XML-сценария.

Файл build.xml

// номер версии и кодировка

<?xml version=”1.0” encoding=”UTF-8”?>

//задача внутри тега

<project default=”clean” name =”Lab3”>

//подключаем файл со свойствами

<property file=”x.properties”/>

//задаем папку и переменную

<property name=”${build-file}” value=”abc-${DSTAMP}.jar”/>

//сборка приложения

<target name=”init” depends=”clean”>

<mkdir dir=”${buildDir}”/> // создание директорий

<mkdir dir=”${distDir}”/>

</target>

//указываем, от какой цели зависит данная цель, т.е. какая цель будет выполняться до выполнения текущей цели

<target name=”compile” depends=”init”>

// указываем папку с исходниками, задаем имя папки со скомпилированными файлами, размещение библиотеки junit

<javac srcdir=”${srcDir}” destdir=”${biuilDir}” classpath=”${junit.dir}”/>

</target>

//упаковка скомпилированный файлов в jar-архив

<target name=”build” depends=”compile”>

//задаем имя архива; папку, в которой находится скомпилированная программа

<jar destfile=”${distDir}/${build-file}” basedir=”${buildDir}”>

// создание файла манифест, в котором указываются параметры для запуска программы из jar-архива

<manifest>

// имя атрибута, значение атрибута, для версии

<attribute name=”Built-By” value=”${user.name}”/>

// для главного класса

<attribute name=”Main-Class” value=”package.Main”/>

</manifest>

</jar>

</target>

//воспроизведение музыки после завершения сборки

<target name="music" depends="build">

// через командную строку даем задачу

<exec executable="cmd">

//воспроизведения музыкального файла opi.mp3

<arg value="/c"/>

<arg value="1.mp3"/>

<arg value="-p"/>

</exec >

</target>

// запуск Junit тестов. (Обязательно надо указать, где находится библиотека junit!)

<target name="test" depends="build" >

//отправить на выход результат испытаний, не отфильтровывая

<junit showoutput="yes" filtertrace="false" >

// параметры отображения результатов тестирования ( в нашем случае на экран)

<formatter type="plain" usefile="false" />

<classpath>

<pathelement location = "${junit.dir}/junit.jar"/>

<pathelement location = "${distDir}/${build-file}"/>

<pathelement location = "${buildDir}"/>

</classpath>

<test name ="lab3pinb.ShotTestClass" />

</junit>

</target>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]