Нотатки програмістера Maven

IT – це чудово!

Maven. Плагіни для збирання простих проектів

Зміст:

Налаштування компілятора.

Maven Compiler plugin

Це, мабуть, найпопулярніший плагін, що дозволяє керувати версією компілятора. Налаштування за замовчуванням мавен далекі від ідеалу і рідкісний проект обходиться без конфігурування параметрів компілятора.

У найпростішому випадку плагін дозволяє встановити версію java для якої написаний код і версію java для компілювання.

З більш серйозних можливостей плагін дозволяє вказати шлях до компілятора, запустити компілювання в окремій JVM, задавати аргументи компілювання і навіть виконати компілювання не-java компілятором.

Створення jar-файлу та файлу маніфесту.

Maven JAR Plugin

Цей плагін дозволяє вбити відразу кількох зайців: створити маніфест та jar-файл, та описати додаткові ресурси, які необхідно включити до jar-файлу.

Додаткові ресурси, що включаються в jar, описуються тегами і (для включення та виключення відповідно):

Для створення маніфесту плагін надає багато варіантів. З усіма можливостями краще ознайомитись на офіційному сайті. Тут я наведу лише найпоширеніші (на мій погляд та досвід) з них.

Перше, найпростіше рішення - вказати існуючий файл маніфесту:

Другий – описати маніфест у налаштуваннях плагіна. Для наочності відразу наведу простий приклад конфігурації плагіна:

Крім автоматичної генерації classpath-а, можна описати його вручну:

У даному прикладі classpath генерується маскою, в якій значення $$, $$ і $$ замінюються на відповідні значення параметрів залежностей, описаних в блоці .

Копіювання залежностей.

Maven Dependency Plugin

  • outputDirectory- вказує шлях до директорії, до якої будуть скопійовані залежності;
  • overWriteReleases- true, якщо необхідно перезаписувати залежності при релізі;
  • overWriteSnapshots- true, якщо необхідно перезаписувати залежності під час створення снапшота;
  • overWriteIfNewer- true, якщо необхідно перезаписувати залежності у разі, якщо вони змінилися з минулого разу;
  • useRepositoryLayout- значення true дозволить зберегти оригінальну структуру каталогу.
Значення за замовчуванням для overWriteReleases і overWriteSnapshots - false, для overWriteIfNewer - true.

Копіювання ресурсів.

Maven Resources Plugin

Окрім копіювання ресурсів під час складання проекту, я користувався цим плагіном на стадії інсталяції, для копіювання проекту на сервер.

Конфігурування плагіна досить просте, інтуїтивне і водночас гнучке:

Параметр дозволяє творити всякі дива, почитати про які можна тут.

Коротко, якщо у вас є деякий текстовий ресурс hello.txt із вмістом виду Hello $, то в результаті копіювання цього ресурсу з прапором filtering = true, у створеній копії значення $ буде замінено назвою проекту, вказаною в pom.xml.

Автори рекомендують не використовувати filtering з бінарними файлами на зразок зображень.

Можливо згодом список перерахованих плагінів зросте, а поки Maven Plugins Вам допоможе.