Вы находитесь на странице: 1из 12

Занятие 7.

Подключение Maven, IDEA, JUnit

Важным момент при разработке ПО является скорость разработки. Для


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

Для подключения Maven в проект нам нужно создать типовую структуру


проекта. Все проекты в Maven имеют одну фиксированную структуру. Это
позволяет быстро разобраться в новом проекте.

src/main/java Исходный код

src/main/resources Ресурсы

src/main/webapp Исходный код для web приложения

src/test/java Тесты

NOTICE.txt Заметки

README.txt Описание проекта


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

Важный блоков в этом файле является элемент dependencies – в нем


описываются необходимые библиотеки проекта. Maven автоматически
подключить данные библиотеки к проекту.

Данный файл должен находить в корне проекта.


Вторым по значимости инструментом разработки является среда разработки.
Почему вторым, а не первым? Иногда вам будет хватать только блокнота для
редактирования исходного кода. А вот собрать проект руками без
инструментов сборки будет проблематично.

В данном курсе я использую JetBrain IDEA. Если у Вас уже имеется опыт с
другой средой разработки, можете смело использовать вам уже знакомый
инструмент. Больших отличий в средах разработки для Java нет. В
большинстве они реализуют одни и те же функции.

Для открытия вашего проекта в среде разработки нам нужно.

1. Запустить среду.
2. Открыть File – Import project …

3. Выбрать корень проекта, где располагается pom.xml


4. Выбрать тип проекта Maven.
5. После того как среда сделай индексацию проекта с правой стороны
появится закладка Maven.
Давайте теперь воспользуемся зависимостью Junit. Это библиотека
используется для тестирования приложение по типу черного ящика.

Тестирования черный ящиком подразумевает вид тестирования, когда мы


оцениваем результат работы программы по входным параметра.

В псевдокоде это будет выглядеть - Calculate(2 + 2) expect 4

Рассмотрим тест калькулятора.

Создаем новый файл в папке src/test/java/

На закладке maven – test – двойной клик запустить выполнение тестирования.

Особое внимание хотел уделить возможности Maven разделять код на


модули. В данном курсе каждый новое занятие должно быть в отдельном
модуле. Модули можно удобно подключать между собой. Это позволяет
избежать дублирования кода.
Для того что бы создать модульный проект нужно в корне основного проекта
создать файл pom.xml. В разделе packaging указать pom. Это говорит о том,
что проект будет состоять из отдельных модулей.

После заголовка нужно добавить раздел modules. Этот раздел должен


содержать ваши модули. Модули – это подпапки в корневые папки,
содержащие свой pom.xml и структуру, описанную в начале главы. То есть
корневой каталог должен содержать pom.xml и папки. А модули должны
содержать pom.xml и структуру src.
Ниже показан пример модуля урока 28.
Здесь хорошо видно, что в корневые папки есть pom.xml и в папки модуля
есть свой отдельный pom.xml.
Теперь поговорим, что должно быть в pom.xml для модуля.
Первоначально, в каждом модуле будут использоваться одинаковые
зависимости, их нужно перенести в корневой pom.xml. Для того, чтобы
использовать зависимости из коневого проекта нужно указать следующую
настройку.

После этого все зависимости из корневого проекта будут доступны в модуле.


Делается это для сокрушения кода.
Теперь рассмотрим пример, когда нам нужно использовать код одно модуля
другим. Например, код из третьего урока использовать в четверном.
Pom.xml третьего модуля выглядит так.
Для того, чтобы подключить данный модуль к четвёртому модулю нужно в
pom.xml четвёртого модуля добавить зависимость.

Нужно по максимуму избежать копирования кода. Используйте подключение


модулей.
Теперь давайте познакомимся с удобными инструментами, позволяющие
искать плохой код.
Раздел analyze.

Поиск дублирования кода – Locate Duplicates. В меню Analyze выбирать


пункт Locate Duplicates. Среда автоматически анализирует весь код проекта и
находить одинаковые куски кода, которые следуют переписать. Ниже
показан пример.
Поиск циклических зависимостей – Analyze Dependencies Matrix. Если в коде
есть циклические значимости значит вы не можете заменить реализацию
классов. От циклических зависимостей нужно избавляться. Циклический код
– жестко связанный код с проблемами в расширение и тестировании.
На данном рисунке видно красные квадраты – это и есть циклические
зависимости. Нужно постараться, чтобы весь код находился в нижнем левой
углу диагонали.
Задания

 Добавить maven для проекта Клиника. Калькулятор.


 Добавить тесты в эти проекты.

Решение

См. проект.