Нотатки програмістера 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 дозволить зберегти оригінальну структуру каталогу.
Копіювання ресурсів.
Maven Resources Plugin
Окрім копіювання ресурсів під час складання проекту, я користувався цим плагіном на стадії інсталяції, для копіювання проекту на сервер.
Конфігурування плагіна досить просте, інтуїтивне і водночас гнучке:
Параметр дозволяє творити всякі дива, почитати про які можна тут.
Коротко, якщо у вас є деякий текстовий ресурс hello.txt із вмістом виду Hello $, то в результаті копіювання цього ресурсу з прапором filtering = true, у створеній копії значення $ буде замінено назвою проекту, вказаною в pom.xml.
Автори рекомендують не використовувати filtering з бінарними файлами на зразок зображень.
Можливо згодом список перерахованих плагінів зросте, а поки Maven Plugins Вам допоможе.