În acest tutorial, vă vom arăta cum să utilizați Maven Shade Plugin pentru a crea un Jar împreună cu Jars-urile sale de dependență într-un singur fișier Jar executabil, așa numit Fat Jar sau uber Jar.

fișier

1. Examinați un proiect Java

Proiectul Java anterior (dateutils) va fi reutilizat, a se vedea următoarea structură a folderelor

2. Pom.xml

Citiți comentariul de mai jos pentru a vă explica de la sine.

3. Împachetați-l

Pentru a produce borcanul final, trebuie doar să îl împachetați:

Două fișiere jar vor fi create în folderul țintă.

  1. dateutils.jar - Clase de proiecte și dependențe într-un singur jar, asta doriți.
  2. original-dateutils.jar - Numai clasele de proiect

P.S Dependența-redusă-pom.xml generată este doar pentru referință, doar ignorați-o.

4. Examinează-l

Enumerați conținutul dateutils.jar

Descărcați codul sursă

Referințe

mkyong

Salut,
După cum văd, pluginul umbrit va crea două borcane
1. dateutils.jar
2. original-dateutils.jar

Putem evita crearea original-dateutils.jar.
Avem o cerință în care avem nevoie doar de borcanul uber.

Am niște borcane terță parte care nu fac parte din repo-ul central pe care trebuie să le includ în jarul executabil. În prezent am în directorul de bază al proiectului. Se pare că ansamblul Maven și pluginul de umbră nu includ dependențe externe în vasul de grăsime. Ați putea ajuta dacă este posibil să construiți un jar executabil care să aibă biblioteci externe incluse?

se pare că unele dintre borcanele dependente sunt semnate și, când sunt împărțite în borcan, java se plânge de o eroare de securitate. Așa că pot folosi pluginul de semnare maven, dar nu sunt sigur care este cel mai bun mod de gândire sau există vreo modalitate de a avea o integrare directă cu pluginul shard?

multumesc mkyong! foarte util

Vă mulțumim pentru instrucțiuni. În ceea ce privește „pachetul mvn”, când am executat această comandă în fereastra 10, atunci am primit acest mesaj de eroare.

C: \ Users \ SK \ Documents \ NetBeansProjects> pachetul mvn
„Mvn” nu este recunoscut ca o comandă internă sau externă,
program operabil sau fișier batch.

Folosesc Netbeans 11. Există o modalitate de a rula „pachetul mvn” în interiorul netbeans?
Am construit și proiectul. Proiectul a realizat un borcan gras. Dar, când rulez fișierul jar, am primit acest mesaj de eroare:

Cred că este legat de fișierele de securitate pe care trebuie să le elimin din fiecare borcan.
Aveți vreun sfat despre cum să remediați problema?

Iată fișierul meu pom.xml:

4.0.0
com.compania mea
FSPFoodPriceMonitoring
1.0-SNAPSHOT
borcan

com.google.maps
google-maps-services
0.9.3

com.opencsv
opencsv
4.0

mysql
mysql-connector-java
5.1.21