Створіть жирний файл Jar - плагін Maven Shade

У цьому посібнику ми покажемо вам, як використовувати плагін Maven Shade для створення Jar-файлу разом з банками залежностей у єдиний виконуваний файл Jar, так званий жирний jar або uber Jar.

жирний

1. Перегляньте проект Java

Попередній проект Java (dateutils) буде використаний повторно, див. Наступну структуру папок

2. Pom.xml

Прочитайте коментар нижче для пояснення.

3. Упакуйте це

Щоб створити остаточну банку, просто упакуйте її:

У цільовій папці буде створено два файли jar.

  1. dateutils.jar - Проекти та класи залежностей в одній баночці, це те, що ви хочете.
  2. original-dateutils.jar - Тільки ваші класи проекту

P.S Згенерована залежність-зменшена-pom.xml призначена лише для довідки, просто ігноруйте її.

4. Перегляньте це

Перелічіть вміст dateutils.jar

Завантажте вихідний код

Список літератури

мкьонг

Привіт,
Як я бачу, затінений плагін створить дві банки
1. dateutils.jar
2. original-dateutils.jar

Чи можемо ми уникнути створення original-dateutils.jar.
У нас є вимога, згідно з якою нам потрібна лише банка uber.

У мене є деякі сторонні банки, які не є частиною центрального репо, що мені потрібно включити до виконуваної банки. На даний момент я маю тоді базовий каталог проекту. Здається, плагін збірки та відтінків Maven не включає зовнішніх залежностей у жировій банці. Не могли б ви допомогти, якщо можна створити виконуваний jar, який включає зовнішні бібліотеки?

очевидно, деякі з залежних банок підписані, і коли вони перетворюються на жирні банки, java скаржиться на помилку безпеки. Тому я можу використовувати плагін підпису maven, але не впевнений, що найкращий спосіб будь-яких думок чи є спосіб прямої інтеграції з плагіном shard?

дякую mkyong! дійсно корисно

Дякую за вказівки. Щодо “пакета mvn”, коли я запустив цю команду у вікні 10, то я отримав це повідомлення про помилку.

C: \ Users \ SK \ Documents \ NetBeansProjects> пакет mvn
„Mvn“ не розпізнається як внутрішня чи зовнішня команда,
функціональна програма або пакетний файл.

Я використовую Netbeans 11. Чи є спосіб запустити “mvn-пакет” всередині netbeans?
Я також побудував проект. Проект зробив жирну баночку. Але, запустивши файл jar, я отримав таке повідомлення про помилку:

Я припускаю, що це пов'язано з файлами безпеки, які мені потрібно видалити з кожної банки.
Чи маєте ви якусь пораду, як це виправити?

Ось мій файл pom.xml:

4.0.0
com.mycompany
FSPFoodPriceMonitoring
1,0-SNAPSHOT
банку

com.google.maps
Google-Maps-Services
0.9.3

com.opencsv
opencsv
4.0

mysql
mysql-з'єднувач-java
5.1.21