Zsíros edény létrehozása Gradle-ben

Ez a cikk egy sorozat része: • Bevezetés a Gradle-be

• Ant vs Maven vs Gradle

• Egyéni fokozatok beépítése

• Zsíros edény létrehozása fokozatban (aktuális cikk)

1. Áttekintés

Ebben a rövid cikkben kitérünk egy „kövér edény” létrehozására Gradle-ben.

Alapvetően, egy kövér edény (más néven uber-jar) egy önellátó archívum, amely mind az alkalmazás futtatásához szükséges osztályokat, mind azok függőségeit tartalmazza.

2. Kezdeti beállítás

Kezdjük egy egyszerűvel épít.gradle fájl két Java-függőségű Java-projekthez:

plugin alkalmazása: 'java' adattárak {mavenCentral ()} függőségek {compile group: 'org.slf4j', név: 'slf4j-api', verzió: '1.7.25' compile group: 'org.slf4j', név: ' slf4j-simple ", verzió: '1.7.25'}

3. A Jar Task használata a Java beépülő modulból

Kezdjük a befőttes üveg feladat a Java Gradle pluginból. Alapértelmezés szerint ez a feladat mindenféle függőség nélkül készít üvegeket.

Néhány kódsor hozzáadásával felülírhatjuk ezt a viselkedést. Két dologra van szükségünk a működéshez:

  • a Főosztály attribútum a jegyzékfájlban
  • Tartalmazza a függőségi üvegeket

Adjunk hozzá néhány módosítást a Gradle feladathoz:

jar {manifest {attributes "Main-Class": "com.baeldung.fatjar.Application"} innen: {configurations.compile.collect {it.isDirectory ()? it: zipTree (it)}}}

4. Külön feladat létrehozása

Ha az eredeti jar feladatot a jelenlegi állapotában szeretnénk hagyni, létrehozhatunk egy külön feladatot, amely ugyanazt a munkát fogja elvégezni.

A következő kód új feladatot ad hozzá customFatJar:

feladat customFatJar (type: Jar) {manifest {attributes 'Main-Class': 'com.baeldung.fatjar.Application'} baseName = 'all-in-one-jar' from {configurations.compile.collect {it.isDirectory ( )? it: zipTree (it)}} üveggel}

5. Dedikált bővítmények használata

A meglévő Gradle beépülő modulokat is felhasználhatjuk egy kövér edény felépítéséhez.

Ebben a példában az Árnyék plugint fogjuk használni:

buildscript {adattárak {jcenter ()} függőségek {classpath 'com.github.jengelman.gradle.plugins: shadow: 2.0.1'}} plugin alkalmazása: 'java' plugin alkalmazása: 'com.github.johnrengelman.shadow'

Miután alkalmazzuk az Árnyék plugint, a shadowJar feladat készen áll a használatra.

6. Következtetés

Ebben az oktatóanyagban bemutattunk néhány különféle módszert a zsírdobozok létrehozására a Gradle-ben. Felülírtuk az alapértelmezett jar feladatot, létrehoztunk egy külön feladatot és az árnyék plugint használtuk.

Melyik megközelítés ajánlott? A válasz - attól függ.

Egyszerű projektekben elég az alapértelmezett jar feladatot felülírni, vagy újat létrehozni. De amint a projekt növekszik, nagyon javasoljuk a beépülő modulok használatát, mert ezek már megoldottak egy nehezebb problémát, például a külső META-INF fájlokkal való konfliktusokat.

Mint mindig, ennek az oktatóanyagnak a teljes megvalósítása megtalálható a GitHubon.

« Előző Egyedi fokozatok bővítmények írása