По-перше, я хотів би віддати належне цьому анонімному користувачу stackoverflow - я впевнений, що раніше бачив такий відповідь, але тепер я не можу його знайти.
Кращим варіантом для локальних файлів jar як залежності є створення локального репозиторія maven. Таке репо - це не що інше, як правильна структура каталогів з файлами pom.
У моєму прикладі: у мене є майстер-проект в місці розташування $ а subroject1 - на $ / $
То я створюю mvn-репозиторій в: $ / local-maven-repo
У файлі pom в $ / $ / pom.xml необхідно $ / $ / pom.xml репозиторій $ / $ / pom.xml який буде використовувати шлях до файлу в якості параметра url:
Залежність може бути вказана як для будь-якого іншого сховища. Це робить ваше сховище pom незалежним. Наприклад, як тільки бажана банку доступна в центральному центрі maven, вам просто потрібно видалити її зі свого локального репо, і вона буде витягнута з репо за замовчуванням.
Останнє, але не менш важливе: додати файл jar в локальний репозиторій за допомогою перемикача -DlocalRepositoryPath, як тут:
Один файл jar-файлу встановлений таким чином, що mvn-репо може бути прив'язане до сховища коду, а вся настройка незалежна від системи. (Робочий приклад в github)
Створіть нову папку, скажімо, local-maven-repo в корені вашого проекту Maven.
Просто додайте локальне репо всередині вашого
Потім для кожної зовнішньої банки, яку ви хочете встановити, зайдіть в корінь вашого проекту і виконайте:
Так, ви можете мати, але це не дуже гарна ідея.
Замість цього встановіть всі ці банки в maven repos
Щоб встановити сторонню банку, будь ласка, викличте команду, як показано нижче.
Ще один цікавий випадок - коли ви хочете мати в своєму проекті приватні банки maven. Можливо, ви захочете зберегти можливості Maven для вирішення транзитивних залежностей. Рішення досить просто.
- Створіть папки у вашому проекті
Додайте наступні рядки в файл pom.xml
Відкрийте папку .m2 / repository і скопіюйте структуру каталогів проекту, який ви хочете імпортувати, в папку libs.
Наприклад, припустимо, що ви хочете імпортувати залежність
Просто запустіть .m2 / repository, і ви побачите наступну папку
кому / MyCompany / MyProject / 1.2.3
Скопіюйте всі в папку libs (знову ж таки, включаючи папки під .m2 / repository), і все готово.
Використання maven-install-plugin в батьківському помпі або синтетичному батьківському pom працює для мене. Скажімо, ми поміщаємо файл jar в каталог lib батьківського модуля, нам просто потрібно створити властивість як lib-path:
- Lib-path: $ / lib для батьківського помпа
- Lib-path: / lib з будь-якого додаткового модуля
Потім слід, як @sphinks описує його вище, використовуючи maven-install-plugin. Не буде ніякого ручного кроку, і артефакт може бути доданий як будь-які інші залежності до допоміжного модулю.
NB. Ви також можете використовувати деякі плагіни для виправлення папки lib. Деякі пропонують використовувати Maven Directory Plugin