Нотатки программістера управління залежностями в eclipse за допомогою maven

У великих проектах, де кількість сторонніх бібліотек зростає чи не швидше кількості написаних рядків коду, управління залежностями і підтримання їх переліку в актуальному стані у всіх членів групи розробників стає дуже складним завданням. І тут, як не можна до речі, на допомогу приходить Maven.

Коротко про Maven

Maven - система для автоматичного складання проектів. Переваги використання maven не обмежуються спрощенням управління залежностями проекту і на стільки великі і численні, що просто не можуть вкластися в одну статтю.

Серцем maven є конфігураційний файл pom.xml (Project Object Model). У цьому файлі описуються використовувані плагіни, залежно та інша необхідна інформація:


Безпосередньо залежності описуються в розділі dependencies. Для кожної використовуваної в проекті бібліотеки необхідно вказати ідентифікатор групи і артефакту, а також необхідну її версію. Цієї інформації maven-у досить, для пошуку зазначеної бібліотеки в репозиторіях.

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

Значення ідентифікаторів групи і артефакту підключається бібліотеки практично завжди можна знайти на сайті www.mvnrepository.com. Якщо не вдасться знайти бібліотеку там, швидше за все гугл підкаже вам додатковий репозиторій, на якому шукана бібліотека присутній.

Додаткові репозиторії перераховуються в розділі repositories:


Часто, як залежності проекту, необхідно використовувати власні напрацювання. Шукати їх в центральному репозиторії або навіть в гуглі, очевидно, не має сенсу. У такій ситуації є два шляхи: описати залежність як системну і вказати фізичний шлях до бібліотеки, або додати бібліотеку в локальний репозиторій maven-а (останнє переважніше).

Щоб описати залежність як системну, крім версії, ідентифікаторів групи і артефакту вказується scope. для якого встановлюється значення system:


Для додавання бібліотеки в локальний репозиторій, існує команда install:


де:
  • шлях до додається бібліотеці;
  • ідентифікатор групи, під яким буде зареєстрована бібліотека;
  • ім'я артефакту;
  • версія додається бібліотеки;
  • спосіб упаковки бібліотеки, найчастіше jar;
Перший підхід хороший, коли бібліотека лежить в доступному для всіх розробників місці і шлях до неї у всіх збігається. Інакше, битва за стан pom файлу в CVS буде не на життя, а на смерть. Другий підхід вирішує цю проблему, але змушує провернути процес установки бібліотеки на машину кожного члена команди. Втім, якщо ви використовуєте єдиний корпоративний репозиторій, то і цього маленького незручності вдасться уникнути.

Maven Integration for Eclipse (m2e)

Для інтеграції maven в eclipse існує плагін m2eclipse. Він дозволяє імпортувати існуючий maven-проект в eclipse і автоматично переналаштовує eclipse для розуміння структури maven-проекту і використання залежностей, описаних в pom.xml.

Створення нового maven-проекту

У діалозі для створення нових проектів (File -> New -> Other. Або Ctrl + N) виберіть Maven -> Maven Project

Далі, щоб вибрати проект з існуючих архетипів, залиште галочку Create a simple project знятої. Для створення простого проекту її слід поставити:

Нотатки программістера управління залежностями в eclipse за допомогою maven

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

Нотатки программістера управління залежностями в eclipse за допомогою maven

В результаті буде створений проект з наступною структурою:

Нотатки программістера управління залежностями в eclipse за допомогою maven

Імпорт maven-проекту

У стандартному меню імпорту проектів (File -> Import.) Виберіть Maven -> Existing Maven Projects:

Нотатки программістера управління залежностями в eclipse за допомогою maven


Вкажіть директорію імпортованого проекту (в якій лежить pom.xml):

Нотатки программістера управління залежностями в eclipse за допомогою maven


В останньому пункті перевіряється стан необхідних плагінів:

Нотатки программістера управління залежностями в eclipse за допомогою maven


На цьому імпорт проекту закінчено.

Отримання вихідних кодів і документації для використовуваних бібліотек

Ще одна перевага від використання maven в eclipse - це можливість простого і автоматичного отримання вихідних кодів і документації для використовуваних в проекті бібліотек (природно за умови, що вони є в репозиторії).

Натисніть правою кнопкою миші на проект в Package Explorer і виберіть Maven -> Download JavaDoc для завантаження документації і Maven -> Download Sources для завантаження вихідних кодів.

Maven -> Update project

У ряді випадків, при зміні pom.xml, виникає тривала помилка оновлення проекту:

Для її усунення натисніть правою кнопкою миші на проект в Package Explorer і виберіть Maven -> Update Project.