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

l6_NC

.pdf
Скачиваний:
11
Добавлен:
19.04.2015
Размер:
989.53 Кб
Скачать

Make

«Классическая» утилита для сборки проектов

PACKAGE

=

package

VERSION

=

` date "+%Y.%m%d%" `

RELEASE_DIR

= ..

RELEASE_FILE =

$(PACKAGE)-$(VERSION)

#target: all - Default target. Does nothing. all:

echo "Hello $(LOGNAME), nothing to do by default"

#target: dist - Make a release.

dist:

tar -cf $(RELEASE_DIR)/$(RELEASE_FILE) && \ gzip -9 $(RELEASE_DIR)/$(RELEASE_FILE).tar

make dist

© 2013 NetCracker Technology Corporation Confidential

21

ANT

Apache Ant утилита для автоматизации процесса сборки программного продукта. Является платформонезависимым аналогом утилиты make (в качестве «Makefile» применяется «build.xml»).

© 2013 NetCracker Technology Corporation Confidential

22

Ant: пример

build.xml

<?xml version="1.0"?>

<project name="Hello"default="compile"> <target name="compile"

description="compile the Java source code to class files"> <mkdir dir="classes"/>

<javac srcdir="."destdir="classes"/> </target>

<target name="jar"depends="compile"

description="create a Jar file for the application"> <jar destfile="hello.jar">

<fileset dir="classes"includes="**/*.class"/> <manifest>

<attribute name="Main-Class"value="HelloProgram"/> </manifest>

</jar>

</target>

</project>

Запуск - ant target_name

© 2013 NetCracker Technology Corporation Confidential

23

Пример комманд

Код

Действие

Javac

компиляция Java-кода

Copy

копирование файлов

Delete

удаление файлов и директорий

Move

перемещение файлов и директорий

Replace

замещение фрагментов текста в файлах

JUnit

автоматический запуск юнит-тестов

Exec

выполнение внешней команды

Zip

создание архива в формате Zip

CVS

выполнение CVS-команды

Mail

отправка электронной почты

Xslt

наложение XSLT-преобразования

© 2013 NetCracker Technology Corporation Confidential

24

Пример Eclipse

© 2013 NetCracker Technology Corporation Confidential

25

КДПВ

«Лучше день потерять, но за пять минут долететь»

© 2013 NetCracker Technology Corporation Confidential

26

MAVEN

MAVEN инструмент для управления программными проектами (software project management tool). В реальности MAVEN — это система для управления сборкой проекта, по целям во многом схожая с инструментами типа Ant и make.

Отличительные особенности MAVEN таковы:

Примат соглашений над конфигурацией (convention over configuration).

Если проект следует некоторым стандартам, то Мавен сам поймет, что и как надо сделать, чтобы собрать проект. В описании проекта указывается только то, что отличается от стандарта (например, нестандартная структура директорий).

Управление зависимостями (dependency management)

Если для сборки (или для исполнения) проекта требуются некоторые дополнительные библиотеки, их достаточно указать в описании проекта — Мавен сам их скачает, разберется с тем, какая нужна версия, а если эти библиотеки, в свою очередь, зависят от других библиотек, то Мавен скачает и их, и так далее. Для этого Мавен использует удаленные хранилища (репозитории, repositories), в которых хранятся библиотеки и их описания.

Описательный язык.

В отличие от других аналогичных инструментов, Мавен использует именно описание проекта, которое называется Объектная Модель Проекта (Project Object Model), сокращенно POM. В модели не указывается, что, как и когда должно быть выполнено для сборки проекта; вместо этого там описывается то, как проект устроен, от чего он зависит и так далее. Предполагается, что Мавен самостоятельно разберется с тем, как на основании этой информации собрать проект.

Жесткая схема последовательности сборки.

Мавен предполагает, что сборки всех проектов укладываются в несколько типов последовательностей сборки (в терминологии Мавена «жизненных циклов», lifecycles). Последовательность состоит из определенных фаз (обработка ресурсов, компиляция, тесты, упаковка, установка...), которые проект проходит в жестко заданном порядке. В модели проекта указывается специфические детали того, что именно должно быть сделано в ту или иную фазу («при компиляции использовать вот такие опции компилятора...»).

© 2013 NetCracker Technology Corporation Confidential

27

Литература по Ant

http://habrahabr.ru/post/99394/

http://www.artlebedev.ru/tools/technogrette/soft/eclipse-ant/

© 2013 NetCracker Technology Corporation Confidential

28

Maven: жизненный цикл

validate — проверяет корректность метаинформации о проекте

compile — компилирует исходники

test — прогоняет тесты классов из предыдущего шага

package — упаковывает скомпилированые классы в удобноперемещаемый формат (jar или war, к примеру)

integration-test — отправляет упаковынные классы в среду интеграционного тестирования и прогоняет тесты

verify — проверяет корректность пакета и удовлетворение требованиям качества

install — загоняет пакет в локальный репозиторий, откуда он (пекет) будет доступен для использования как зависимость в других проектах

deploy — отправляет пакет на удаленный production сервер, откуда другие разработчики его могут получить и использовать

© 2013 NetCracker Technology Corporation Confidential

29

Дополнительная литература

По MAVEN

http://habrahabr.ru/post/102181/

http://habrahabr.ru/post/77333/

http://skipy-ru.livejournal.com/5517.html

По авто-сборке

http://www.quizful.net/post/automated-builds-java

Гудлиф. Глава 10 «Код, который построил Джек»

© 2013 NetCracker Technology Corporation Confidential

30

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