Zsíros edény létrehozása Gradle-ben
• 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