2. Сборка проекта – это компиляция исходного
кода в исполняемый код.
Ресурсы:
• Библиотеки, используемые в проекте, их
версии;
• Другие ресурсы, необходимые для
сборки/запуска проекта;
• Запуск тестов;
4. Автоматическая сборка проектов
Реализует метод Continuous Integration.
Преимущества:
• быстрое обнаружение ошибок;
• экономия времени на хозяйственных
операциях:
• оперативный доступ к последним
изменениям в проекте;
• Наличие работоспособной версии кода
проекта
• История сборок и релизов
6. Ant
• наличие на системе установленной рабочей
среды Java
• Описывается в формате XML
• Позволяет определить версионность продукта
• Облегчается процесс создания сборок проекта
• Является одним из составляющих
документирования проекта
• Помогает в разворачивании серверных
приложений
• Ant строит граф зависимостей, что позволяет
избежать исполнения ненужных целей.
• Переносимость сценариев
• Императивная сборка проекта
7. Build файл
• Targets
Цели сравнимы с процедурами в языках программирования и
содержат вызовы команд-заданий
• Tasks
Каждое задание представляет собой неделимую, атомарную
команду, выполняющую некоторое элементарное действие.
Примеры:
Clean
Compile
Deploy
9. Ant, недостатки:
• Низкоуровневость
• процесс настройки сборки разных редакций
продукта достаточно трудоемок и основывается
на применении переменных сборки.
10. Maven
Основные преимущества Maven
• Независимость от OS.
• Управление зависимостями.
• Возможна сборка из командной строки. Такое
часто необходимо для автоматической сборки
проекта на сервере (Continuous Integration).
• Хорошая интеграция со средами
разработки. Основные среды разработки на java
легко открывают проекты которые собираются c
помощью maven. Как следствие - если с проектом
работают в разных средах разработки, то maven
удобный способ хранения настроек.
• Декларативное описание проекта.
11. Maven: pom.xml (POM – Project Object Model)
• артефакт— это, по сути, любая библиотека, хранящаяся в
репозитории, пример: org.springframework.spring:2.5.5
• Плагины - используются самим Maven'ом при сборке
проекта. Maven плагины позволяют задать дополнительные
действия, которые будут выполняться при сборке.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<fork>false</fork>
<server>test-server</server>
<url>http://test-server/manager</url>
</configuration>
</plugin>
12. Maven: pom.xml (POM – Project Object Model)
• Зависимости — это те библиотеки, которые
непосредственно используются в вашем проекте для
компиляции кода или его тестирования. Объявление
зависимостей заключено в тэг <dependencies>.
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
</dependencies>
• Архетип — это некая стандартная компоновка файлов и
каталогов в проектах различного рода .
14. Maven: pom.xml (POM – Project Object Model)
• Активация профайла
вручную в командной строке запуска maven, например:
mvn package -P production
при объявлении самого профайла можно задать тэг <activation>
Активные профайлы можно также задать в ~/.m2/settings.xml
<settings>
...
<profiles>
<profile>
<id>appserverConfig</id>
…
</profile>
</profiles>
<activeProfiles>
<activeProfile>appserverConfig</activeProfile>
</activeProfiles>
...
</settings>
15. Maven: жизненый цикл
• Compile - Компилирование проекта
• Test - Тестирование с помощью JUnit тестов
• Package - Создание .jar файла или war, ear в зависимости от
типа проекта
• integration-test - Запуск интеграционных тестов
• Install - Копирование .jar (war , ear) в локальный
репозиторий
• Deploy - публикация файла в удалённый репозиторий
Дополнительные фазы:
• Clean - удаление всех созданных в процессе сборки
артефактов: .class, .jar и др. файлов. В простейшем случае
результат — просто удаление каталога target
• Site - предназначена для создания документации
(javadoc+сайт описания проекта)
16. Maven and Continuous Integration
В результате достигается:
• раннее обнаружение ошибок
• автоматизация рутинных операций
• как результат - экономия времени и повышение
качества кода.
17. Maven, недостатки:
• К недостаткам maven следует отнести его большую
сложность и дополнительное время для изучения если
вы ещё не знаете Maven.
• Есть opensource библиотеки, которые собираются не
Maven'ом, и они попадают в центральный
репозиторий обычно позже, чем выйдет официальный
релиз. Тут можно либо подождать, когда они всё-таки
попадут в центральный репозиторий, либо добавить их
вручную в локальный.
18. Maven VS Ant
• в отличии от Ant, Maven хорошо интегрируется со
всеми основными средами разработки.
• сборка проекта происходит совсем без IDE.
• Управление зависимостями