Java - як додати локальні файли jar в проект maven repository, code q - a український (ru)

По-перше, я хотів би віддати належне цьому анонімному користувачу 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.

Просто додайте локальне репо всередині вашого вашого pom.xml.

Потім для кожної зовнішньої банки, яку ви хочете встановити, зайдіть в корінь вашого проекту і виконайте:

Так, ви можете мати, але це не дуже гарна ідея.

Замість цього встановіть всі ці банки в maven repos

Щоб встановити сторонню банку, будь ласка, викличте команду, як показано нижче.

Ще один цікавий випадок - коли ви хочете мати в своєму проекті приватні банки maven. Можливо, ви захочете зберегти можливості Maven для вирішення транзитивних залежностей. Рішення досить просто.

  1. Створіть папки у вашому проекті

Додайте наступні рядки в файл 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