Stvaranje masne tegle u Gradlama

Ovaj je članak dio serije: • Uvod u Gradle

• Mrav vs Maven vs Gradle

• Pisanje prilagođenih gradle dodataka

• Stvaranje masne posude u Gradleu (trenutni članak)

1. Pregled

U ovom ćemo kratkom članku opisati stvaranje "masne posude" u Gradleu.

U osnovi, masna tegla (također poznata i kao uber-jar) samodostatna je arhiva koja sadrži i klase i ovisnosti potrebne za pokretanje aplikacije.

2. Početno postavljanje

Počnimo s jednostavnim graditi.gradle datoteka za Java projekt s dvije ovisnosti:

primijeniti dodatak: 'java' spremišta {mavenCentral ()} ovisnosti {grupa kompajliranja: 'org.slf4j', ime: 'slf4j-api', verzija: '1.7.25' grupa kompajliranja: 'org.slf4j', ime: ' slf4j-simple ', verzija:' 1.7.25 '}

3. Korištenje Jar zadatka iz dodatka Java

Počnimo s izmjenom datoteke staklenka zadatak iz dodatka Java Gradle. Prema zadanim postavkama ovaj zadatak stvara staklenke bez ikakvih ovisnosti.

To ponašanje možemo prebrisati dodavanjem nekoliko redaka koda. Da bismo uspjeli, potrebne su nam dvije stvari:

  • a Glavna klasa atribut u datoteci manifesta
  • Uključite staklenke ovisnosti

Dodajmo nekoliko izmjena u zadatak Gradle:

jar {manifest {atributi "Glavna klasa": "com.baeldung.fatjar.Application"} s adrese {configurations.compile.collect {it.isDirectory ()? it: zipTree (it)}}}

4. Izrada zasebnog zadatka

Ako želimo originalni zadatak jar ostaviti kakav jest, možemo stvoriti zasebni koji će raditi isti posao.

Sljedeći će kôd dodati novi zadatak pod nazivom customFatJar:

zadatak customFatJar (vrsta: Jar) {manifest {atributi 'Glavna klasa': 'com.baeldung.fatjar.Application'} baseName = 'sve-u-jednom-staklenku' iz {configure.compile.collect {it.isDirectory ( )? it: zipTree (it)}} s jar}

5. Korištenje namjenskih dodataka

Također možemo koristiti postojeće dodatke Gradle za izgradnju staklenke za masnoću.

U ovom ćemo primjeru koristiti dodatak Shadow:

buildscript {spremišta {jcenter ()} ovisnosti {classpath 'com.github.jengelman.gradle.plugins: shadow: 2.0.1'}} primijeni dodatak: 'java' primijeni dodatak: 'com.github.johnrengelman.shadow'

Jednom kada primijenimo dodatak Shadow, shadowJar zadatak će biti spreman za upotrebu.

6. Zaključak

U ovom uputstvu predstavili smo nekoliko različitih načina stvaranja masnih staklenki u Gradlama. Nadjačali smo zadani zadatak jar, stvorili odvojeni zadatak i upotrijebili dodatak sjene.

Koji se pristup preporučuje? Odgovor je - ovisi.

U jednostavnim projektima dovoljno je nadjačati zadani zadatak jar ili stvoriti novi. No kako projekt raste, toplo preporučujemo upotrebu dodataka jer su oni već riješili sve teže probleme poput sukoba s vanjskim META-INF datotekama.

Kao i uvijek, cjelovitu implementaciju ovog vodiča možete pronaći na GitHubu.

« Prethodno pisanje prilagođenih dodataka Gradle