Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Тема 2.Основы Apache Maven




2.1 Настройка Apache Maven для Windows

ApacheMaven – это программный продукт, предназначенный для упрощения сборки проектов, пришедший на смену ApacheAnt.Используя огромный потенциал Mavenа и его эффективность в решении ежедневных проблем, он стал очень популярным и широко используемым инструментом не только разработчиками, но и другими членами команд.

Официальный сайт Mavena http://maven.apache.org, основные его достоинства следующие:

· Делает процессы сборки приложения простым

· Предоставляет унифицированную систему сборки

· Предоставляет информацию о качестве проекта

· Предоставляет описание лучших практик в разработке

· Позволяет производить прозрачную и понятную миграцию новых компонентов.

Maven – это программный продукт с интерфейсом командной строки и должен быть интегрирован с переменными среды Windows. Процесс установки достаточно прост и требует установленной Java SDK на компьютере.

Для проверки, установлена ли JavaSDK на компьютере, выполните следующую команду через командную строку Windows:

Java-version

Результат может быть похожий на следующее:

java version "1.6.0_21"

Java(TM) SE Runtime Environment (build 1.6.0_21-b07)

Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode)

Если у вас не установлен Java SDK, тогда вы можете скачать последнюю версию на сайте http://www.oracle.com/technetwork/java/javase/downloads/index.html и установить.

 
 
 
{?} Установлен Java SDK?

Тогда пора установить apachemaven. Скачать последнюю версию можно с сайта http://maven.apache.org/download.html.

После завершения скачивания Maven, распакуйте архив в любую папку. Для Windows, как правило, путь к папке не должен содержать пробелов. Я распаковал Maven на диск D: d:\opt\maven.

Для начала использования Maven необходимо настроить переменные среды Windows. M2_HOME переменная должна быть установлена и PATH переменная должна быть модифицирована для включения папки, откуда запускается Maven.

Установить переменные среды вызовом «Настройки Системы» (System), используя «Панель Управления» (ControlPanel).

 

Рисунок 2.1.1Путь к изменению переменных среды.

 

Рисунок 2.1.2 Установка переменной M2_HOME

 

Рисунок 2.1.3 Изменение переменной PATH.

 

Создайте новую переменную среды M2_HOME, указывающую путь к папке, куда был распакован Maven. Для моего компьютера значение для M2_HOME указывает на d:\opt\maven. Переменная среды Path должна уже существовать. Она должна быть изменена, добавлением следующего текста в начало:

%M2_HOME%\bin;

Apache Maven, теперь, готов к использованию. Он, также, доступен для интеграции с IDE и другими программными средствами, предназначенными для разработки.

Прежде чем использовать Apache Maven, вам необходимо проверить, как проверить установлен ли maven на вашем компьютере?

Это можно сделать с помощью следующей команды:

Рисунок 2.1.4. Проверка версии maven

Если результат похожий напредставленный выше, тогда вы можете быть уверенными, что maven установлен и готов к использованию. Если же ваша операционная система не может найти команду mvn, тогда проверьте, что переменные среды path и M2_HOME установлены корректно.

Задание 1

Возьмите установочный файл maven. Настройте environment variables и проверьте, что maven настроен корректно. Напишите версию Maven.

 

 
 
 
 
 
 
 
 
 

2.2 Создание нового проекта

После того, как вы установили apachemaven, вам необходимо создать новый проект. Для этого необходимо сделать следующее:

1. Запустите консоль (cmd в windows).

2. Запустите следующую команду:

mvn archetype:generate

3. Если это первый раз, когда вы запускаете эту команду, вы увидите статус скачивания в командной строке.

4. Затем вы увидите большой список архетипов, у каждого есть номер, имя, и короткое описание, описывающие, что каждый из них представляет. Выберем архетип по умолчанию. Мы предполагаем, что это архетип номер 513, с именем maven-archetype-quickstart. Список со временем может меняться.

[INFO] No archetype defined. Using maven-archetype-quickstart

(org.apache.maven.archetypes:maven-archetype-quickstart:1.0)

Choose archetype:

1: remote -> docbkx-quickstart-archetype (-)

….

100: remote -> maven-archetype-profiles (-)

101: remote -> maven-archetype-quickstart (An archetype which

contains a sample Maven project.)

1222: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-)

Choose a number: 513:

Вас попросят выбрать версию архетипа. Архетип по умолчанию (default) – это последняя стабильная версия архетипа.

Затем, у вас спросят ввести параметры проекта, такие как groupId, artifactId, version и package.

GroupId параметр, используемый для определения иерархического расположения проекта в Maven репозитории.

В этом случае, репозиторий – это локальный репозиторий Maven, расположенный на вашем компьютере. GroupId определяет типичный каталог верхнего уровня, и это может быть использовано в нескольких проектах в организации.

ArtifactId идентифицирует ваш проект и version указывает версию проекта. ArtifactId используется, когда артефакты распакованные в репозиториии используется как зависимость в других проектах.

 

 
{?} Установлен Java SDK?

 

5. По завершению вы должны увидеть следующее:

[INFO] -------------------------------------------

[INFO] BUILD SUCCESS

[INFO] -------------------------------------------

 

Мы используем Maven plugin, для создания или генерации нового проекта.

Новый проект Apache Maven может быть создан «вручную» c pom.xml и папками, созданными или сгенеренными в соответствии с архитектурой Maven проекта.

{?} Что же maven создаст для нас?

 

Ответ – следующее:

Рисунок 2.2.1 Структура файлов созданные maven.

 

Maven создал папку для проекта, содержащую главный pom.xml и папку для исходных кодов src, который содержит подпапки для приложения и папки для тестовых исходных кодов.

Задание 2

Создайте стандартный проект maven. Настройте Idea IDE. Произвеите сборку проекта. Напишите проблемы, которые у вас возникли.

 

 
 
 
 
 
 
 
 
 

2.3 Компилирование и тестирование проекта

Для того, что бы откомпилировать и протестировать проект с помощью maven, необходимо сделать следующее:

1. Откройте консоль (cmd)

2. Перейдите в проектную папку, содержащую pom.xml

3. Запустите следующую команду:

mvn compile

Apachemaven начинает скачивать зависимости (артефакты), если они не доступны в локальном репозитории, и затем компилирует проект.

[INFO] -------------------------------------------

[INFO] BUILD SUCCESS

[INFO] -------------------------------------------

TestDrivenDevelopment (TDD) – популярная практика, рекомендуемая большинством самых знаменитых IT-компаний с мировым именем
Если результат- BuildSuccess, это значит maven завершил компиляцию и сборку приложения.

Maven сделал тестирование частью стандартного жизненного цикла сборки.

Что в свою сделало TDD более простым для команд, которые пытаются внедрить эту практику в процессы разработки.

Когда используется стандартное соглашение maven, то проект включает src/test папку, которая содержит все тесты для кода. Для запуска тестов, вам необходимо запустить следующую команду:

mvn test

Эта команда запускает на выполнение тесты maven, находящиеся в../src/test папки. Когда выполнение команды закончится, вы увидите отчетна консоли:

 

 
 
 
 
 

--------------------------------------------------------

T E S T S

--------------------------------------------------------

Running net.srirangan.packt.maven.AppTest

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.037

sec

Results:

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

 

{?} Как же это все работает?

Мы запускаем следующую команду:

mvn compile

Команда запустит Java компилятор, ассоциированный с проектом. Откомпилированный код кладется в target директорию. Target директория обычно содержит откомпилированные артефакты (это может быть jar файл по умолчанию) вместе с папками для откопилированных классов и тестов.Эта папка, также, содержит pom.properties файл, а также тестовые отчеты и временные файлы.

Рисунок 2.3.1 Target директория

 

 

Задание 3

Измените проект, добавьте ресурсы. Скомпилируйте проект с помощью maven. Проверьте, что компиляция прошла успешна. Опишите проблемы, возникшие во время компиляции. Напишите JUnit-тесты. Проверьте работоспособность сборки приложения.

 

 
 
 
 
 
 
 

2.4 Описание Объектной модели проекта (POM)

Каждый ApacheMaven проект содержит файл pom.xml.

Объектная модель проекта содержит проектную конфигурацию, детали системы учета дефектов, проектную организацию и лицензии, проектные пути, зависимости и т.д. Структура типового стандартного файла pom.xml выглядит следующим образом:

 


<project … >

<modelVersion>4.0.0</modelVersion>

<!--Базис -->

<groupId>...</groupId>

<artifactId>...</artifactId>

<version>...</version>

<packaging>...</packaging>

<dependencies>...</dependencies>

<parent>...</parent>

<dependencyManagement>..

.</dependencyManagement>

<modules>...</modules>

<properties>...</properties>

<!—Настройкисборки -->

<build>...</build>

<reporting>...</reporting>

<!—Метаданныепроекта -->

<name>...</name>

<description>...</description>

<url>...</url>

<inceptionYear>...</inceptionYear>

<licenses>...</licenses>

<organization>...</organization>

<developers>...</developers>

<contributors>...</contributors>

<!—Средаразработки -->

<issueManagement>...</issueManagement>

<ciManagement>...</ciManagement>

<mailingLists>...</mailingLists>

<scm>...</scm>

<prerequisites>...</prerequisites>

<repositories>...</repositories>

<pluginRepositories>...</pluginRepositories>

<distributionManagement>...</distributionManagement>

<profiles>...</profiles>

</project>


Минимальное число обязательных полей pom-файл авключает в себя - groupId, artifactId и version. Эти три поля определяют расположение артефакта в репозитории.

Представленный выше пример pom файла включает 4 основные секции:

1. Базис. Эта секция содержит поля, определяющие уникальность артефакта (groupId, artifactId и version), управление зависимостями, а также детали наследования.

2. Настройки сборки. Детали сборки располагаются в этой секции.

3. Метаданные проекта. Эта секция включает специфичные для проекта параметры, такие как имя, организация, разработчики, адрес сайта организации, которая разрабатывает продукт, год поставки и т.д.

4. Среда разработки. Эта секция содержит всю информацию, касающуюся среды разработки, включая детали о системе контроля версий, системе управления дефектами, системы непрерывной сборки, списки рассылок, репозиториях и т.д.

 

 
 
 

2.5 Описание жизненного цикла сборки.

Жизненный цикл сборки точно определяет процесс сборки, тестирования, выпуска артефактов, и это является сердцем каждого maven проекта.

Существует три встроенных жизненных циклов сборки: стандартный, очистить и сайт.

Стандартный жизненный цикл обрабатывает компиляцию проекта, тестирование и установка. Он содержит более чем 20 фаз, наиболее важные из которых перечислены ниже:

1. Проверка (validate): проверяет, что вся проектная информация доступна и корректна.

2. Компилирование (compile): компилирует исходный код.

3. Тестирование (test): запускает модульные тесты.

4. Упаковка (package): упаковывает откомпилированный код в соответствующий выходной формат.

5. Интеграционное тестирование (integration-test): запускает интеграционные тесты на тестовой среде.

6. Проверка упаковки (verify): Запускает проверки на правильность упаковки.

7. Установка (Install): устанавливает упакованный артефакт на локальный репозиторий.

8. Установка на удаленный репозиторий (deploy): установка финального упакованного артефакта на удаленный репозиторий.

 

 
 
 

 

Как бы вы не запускали на выполнение фазу сборки, все предыдущие фазы выполняются последовательно. Например, выполняя команду

mvn integration-test, вы запускаете проверку, компиляцию, тестирование и упаковку, до того момента пока выполнится фаза интеграционного тестирования.

Жизненный цикл очистки отвечает за процесс очистки проекта от предыдущих файлов сборкии состоит из следующих фаз:

1. Подготовка к очистке (pre-clean): выполняет процессы необходимые до очистки предыдущих файлов сборки проекта.

2. Очистка (clean): удаляет все файлы полученные при предыдущей сборки.

3. Фаза после очистки (post-clean): выполняет процессы необходимые для завершения очистки файлов предыдущей сборки проекта.

Жизненный цикл сайт отвечает за генерацию и установку документации проекта, состоит из следующих фаз:

1. Подготовка к генерации документации (pre-clean): выполняет процессы необходимые до генерации документации проекта.

2. Генерация документации (site): генерация проектной документации.


2.6 Описание профайлов сборки.

Проекты в maven портируемы. Портируемость достигается посредством конфигурации POM, обходя все особенности файловой системы, и сильно зависима от локального репозитория, в котором сохранены необходимые метаданные.

Однако не всегда возможно достичь портируемости, благодаря внутренним взаимозависимостям конфигурации и файловой системы. В таких случаях maven представляет концепцию профайлов сборки.

Профайл сборки это настройки, описанные в pom.xml, которые могут быть запущены когда необходимо.

Существуют следующие варианты запуска профайлов:

1. Запуск профайла через командную строку.

2. Запуск профайла в зависимости от настроек maven.

3. Запуск профайла в зависимости от среды разработки.

 

Профайл может быть запущен через командную строку при помощи параметра –P. Список профайлов, разделенных запятыми, которые должны быть активированы, должны быть перечислены после флага –P.

mvn install -P profile-1,profile-2

 

 
 
 

 

В этом случае, только профайлы, указанные в команде, все же другие сконфигурированные профайлы, будут неактивны.

Обратное действие также возможно. Вы можете указать, какие профайлы не должны быть активированы.

mvn install -P!profile-1,!profile-2

 

 
 
 
 

Настройки maven могут активировать профайлы, если они указанны в секции

<activeProfiles>файла settings.xml.

 

 

<settings>

...

<activeProfiles>

<activeProfile>profile-1</activeProfile>

<activeProfile>profile-2</activeProfile>

</activeProfiles>

...

</settings>

 

Профайлы, указанные в настройках maven активируются по умолчанию каждый раз и их не нужно явно указывать в командной строке.

Профайлы могут быть запущены в зависимости от среды разработки. Среда, в которой профайл должен быть активирован, определяется в секции <profiles> файла pom.xml.

<profiles>

<profile>

<activation>

<property>

<name>environment</name>

<value>dev</value>

</property>

</activation>

</profile>

</profiles>

 

В коде, указанном выше, профайл может быть активирован в dev среде разработке. Пример типичной команды maven, в которой среда разработки указана явно, выглядит так:

mvn groupId:artifactId:goal -Denvironment=dev

 

 
 
 

Задание 4

Выполните сборку проекта с различными фазами жизненного цикла сборки.

 
 
 
 
 
 
 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...