Покрокова установка Maven
-
Для початку потрібно встановити Maven, завантаживши його за цим посиланням .
-
Далі необхідно розпакувати завантажений архів та встановити змінної оточення M2_HOME посилання на місцезнаходження розпакованого архіву. Наприклад, C:\Program Files\maven\
-
Щоб перевірити, що все встановлено, у командному рядку пропиши:
mvn -version
-
Якщо з'явиться інформація про версії Maven, Java тощо, все готове до роботи.
-
Тепер відкрий IntelliJIDEA та створи новий проект. У першому ж вікні вибери Maven:
-
Натисніть Next і заповни наступне діалогове вікно:
-
Далі стандартно створи проект у необхідному місці.
Після того, як проект створився, зверніть увагу на його структуру:
- у папці src/main/java містяться java-класи;
- в src/main/resources - ресурси, які використовує наш додаток (HTML-сторінки, картинки, таблиці стилів тощо);
- src/test - для тестів.
Управління залежностями в Maven
Можливо, ти зустрічав словосполучення "менеджер залежностей" або "dependency manager". Мавен усе це вміє. Завдяки Мавену тобі не потрібно витрачати купу часу на пошуки потрібної бібліотеки в інтернеті, качати її, а потім підключати до проекту: достатньо додати необхідну список залежностей Мавена. Скажімо, тобі в проекті потрібна бібліотека Apache Commons IO для спрощеної роботи з файлуми. Щоб додати бібліотеку, напиши п'ять рядків у pom.xml:<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
Тепер твій pom.xml має виглядати так:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>example.com</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
Після цього дозволи IntelliJ IDEA імпортувати залежність (діалогове вікно має з'явитися у нижньому правому кутку). Тепер бібліотека готова до використання:
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMaven {
public static void main(String[] args) {
File tempDirectory = FileUtils.getTempDirectory();
}
}
Всі наступні залежності теж повинні записуватись усередині тега <dependencies>. У тебе може виникнути питання: як дізнатися інформацію, яку потрібно вказувати про бібліотеку всередині тега <dependency>? Тут усе просто. У таких випадках завжди задаються три параметри: groupId, artifactId та version. Дізнатися ці параметри можна двома способами:
-
На веб-сайті бібліотеки. Якщо нам потрібний Apache Commons IO, переходимо на офіційний сайт, вибираємо вкладку Dependency Information. Тут є вся необхідна інформація — її можна просто скопіювати та додати до нашого розділу dependencies.
-
У Maven-репозиторії . У пошуку введи "apache commons io", і ти побачиш усі доступні версії бібліотеки. Після вибору потрібної, просто скопіюй:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
та додай у свій pom.xml.
Види Maven-репозиторіїв
Варто ще раз згадати Мавен-репозиторій, бо їх насправді маємо два — зовнішній (глобальний) і локальний, у тебе на комп'ютері. Усі бібліотеки, які ти додаєш у свої проекти, зберігаються у локальному репозиторії. Коли Maven додає необхідну залежність у проект, він спочатку перевіряє локальний репозиторій на наявність такої бібліотеки, і тільки якщо не знаходить її там – звертається до зовнішнього. Як бачиш, можна використовувати Мавен для додавання залежностей, але це не все, що він уміє робити.Складання Java-проекту за допомогою Maven
Можливо, новачкові ця можливість здасться безглуздою. Для чого це потрібно, якщо є IDE? Але немає! По-перше, на сервері, на якому доведеться збирати програму, може не бути не те що середовища розробки, а й графічного інтерфейсу. По-друге, на великих проектах Мавен краще справляється із завданнями щодо складання проекту. Тому не будемо нудити себе очікуванням, а розглянемо процес складання програми з використанням Maven.Фази
Процес побудови програми називають життєвим циклом Maven-проекту, і складається з фаз (phase). Подивитися на них ти можеш у IDEA, натиснувши на Maven>example>Lifecycle у правому верхньому кутку: Як бачиш, існує 9 фаз:- clean - видаляються всі скомпіловані файли з каталогу target (місце, в якому зберігаються готові артефакти);
- validate — перевірка, чи вся інформація доступна для складання проекту;
- compile - компілюються файли з вихідним кодом;
- test – запускаються тести;
- package - упаковуються скомпіловані файли (jar, war і т.д. архів);
- verify - виконуються перевірки для підтвердження готовності упакованого файлу;
- install - пакет міститься в локальний репозиторій. Тепер він може використовуватись іншими проектами як зовнішня бібліотека;
- site - створюється документація проекту;
- deploy - зібраний архів копіюється у віддалений репозиторій.
-
через командний рядок:
mvn package
-
використовуючи Intellij IDEA:
До запуску пакета виконуються фази validate, compile, test. Виняток - фаза clean. Її бажано викликати перед кожним новим складанням проекту. Фази можна перерахувати через пропуск:
mvn clean package.
Плагіни
Щоб додати Мавен-плагін до проекту, його опис, аналогічно до залежностей, потрібно помістити в pom.xml в тег <build> і <plugins>. Наприклад, нам потрібен плагін для перевірки того, що всі наші зовнішні бібліотеки використовують останні версії. Трохи пошукавши в інтернеті, можна знайти цей плагін з інструкцією використання. Встановимо його groupId, artifactId і version. Пропишемо, які цілі він має виконати і на якій фазі. У нашому випадку перевірка залежностей у поточному pom.xml встановлена на validate фазі. Тепер наш “пам'ятник” виглядає так:<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>example.com</groupId>
<artifactId>example</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>com.soebes.maven.plugins</groupId>
<artifactId>uptodate-maven-plugin</artifactId>
<version>0.2.0</version>
<executions>
<execution>
<goals>
<goal>dependency</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
Ми так само можемо продовжувати роботу над нашим проектом. Але спробуємо змінити версію Apache Commons IO на 2.0 і запустити збірку проекту. Отримаємо: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Тут у нас помилка збирання, викликана плагіном. У повідомленні до помилки зазначено, що ми використовуємо версію 2.0 за наявності 2.6. Взагалі Мавен дуже корисний інструмент. Можливо, спочатку він здасться важким у використанні, але практикуйся, створюй свої проекти під керівництвом Мавена, і через деякий час ти дуже задоволений результатом. У цій статті навмисне втрачено багато деталей про Мавен — ми сконцентрувалися на найнеобхіднішому. Але досконалості немає межі: почитати більше про Maven можна на офіційному сайті продукту . Частина 5. Сервлети. Пишемо просте веб-додаток Частина 6. Контейнери сервлетів Частина 7. Знайомство з патерном MVC (Model-View-Controller) Частина 8. Пишемо невелику програму на spring-boot
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ