Druhy balenia Maven

1. Prehľad

Typ balenia je dôležitým aspektom každého projektu Maven. Určuje typ artefaktu, ktorý projekt vyprodukuje. Zvyčajne zostavenie produkuje a jar, vojna, pomalebo iný spustiteľný súbor.

Maven ponúka mnoho predvolených typov obalov a tiež poskytuje flexibilitu pri definovaní vlastného.

V tomto tutoriáli sa podrobne ponoríme do typov balenia Maven. Najprv sa pozrieme na životné cykly zostavovania v Mavene. Potom prediskutujeme každý typ balenia, jeho predstavu a vplyv na životný cyklus projektu. Na konci uvidíme, ako definovať vlastný typ balenia.

2. Predvolené typy balenia

Maven ponúka mnoho predvolených typov obalov, ktoré zahŕňajú a jar, vojna, ucho, pom, rar, odložiťa maven-plugin. Každý typ balenia sleduje životný cyklus zostavenia, ktorý sa skladá z fáz. Každá fáza je zvyčajne postupnosťou cieľov a vykonáva konkrétnu úlohu.

Rôzne typy obalov môžu mať v konkrétnej fáze iný cieľ. Napríklad vo fáze prípravy balíka jar typ balenia, maven-jar-pluginJarný cieľ je splnený. Naopak pre a vojna projekt, maven-war-pluginVojnový cieľ sa plní v rovnakej fáze.

2.1. jar

Archív Java - alebo jar - je jedným z najobľúbenejších druhov obalov. Projekty tohto typu balenia vytvárajú komprimovaný súbor zip s .jar predĺženie. Môže obsahovať čisto triedy Java, rozhrania, zdroje a súbory metadát.

Na začiatok sa pozrime na niektoré z predvolených väzieb medzi fázou cieľ-zostavenie pre jar:

  • zdroje: zdrojov
  • prekladač: zostaviť
  • zdroje: testResources
  • prekladač: testCompile
  • istý oheň: test
  • nádoba: jar
  • Inštalácia: Inštalácia
  • nasadiť: nasadiť

Bez meškania definujme typ balenia a jar projekt:

jar

Ak nič nebolo špecifikované, Maven predpokladá, že typ balenia je a jar.

2.2. vojna

Jednoducho povedané, archív webových aplikácií - alebo vojna - obsahuje všetky súbory súvisiace s webovou aplikáciou. Môže obsahovať servlety Java, JSP, stránky HTML, deskriptor nasadenia a súvisiace zdroje. Celkovo vojna má rovnaké viazanie cieľov ako a jar, ale až na jednu výnimku - fázu balíka vojna má iný cieľ, ktorým je vojna.

Bezpochýb, jar a vojna sú najobľúbenejšie typy obalov v komunite Java. Podrobný rozdiel medzi týmito dvoma by mohol byť zaujímavým čítaním.

Definujme typ balenia webovej aplikácie:

vojna

Ostatné druhy balenia odložiť, odsa rar tiež majú podobné životné cykly, ale každý z nich má iný cieľ balíka.

ejb:odložiť alebo par:ods alebo rar:rar

2.3. ucho

Archív podnikových aplikácií - alebo ucho - je komprimovaný súbor, ktorý obsahuje aplikáciu J2EE. Skladá sa z jedného alebo viacerých modulov, ktoré môžu byť buď webové moduly (zabalené ako vojna súbor) alebo moduly EJB (zabalené ako a jar súbor) alebo obaja.

Povedané inak ucho je nadmnožina súboru poháre a vojny a vyžaduje na spustenie aplikácie aplikačný server, zatiaľ čo vojna na jeho nasadenie vyžaduje iba webový kontajner alebo webový server. Aspekty, ktoré odlišujú webový server od aplikačného, ​​a to, aké populárne servery sa nachádzajú v prostredí Java, sú pre vývojárov Java dôležité koncepty.

Definujme predvolené väzby cieľov pre ucho:

  • ucho: generovať-aplikáciu-xml
  • zdroje: zdrojov
  • ucho: ucho
  • Inštalácia: Inštalácia
  • nasadiť: nasadiť

Tu je príklad, ako môžeme definovať typ balenia takýchto projektov:

ucho

2.4. pom

Medzi všetkými typmi balenia pom je najjednoduchší. Pomáha vytvárať agregátory a nadradené projekty.

Agregačný alebo viacmodulový projekt zostavuje podmoduly pochádzajúce z rôznych zdrojov. Tieto podmoduly sú pravidelné projekty Maven a sledujú svoje vlastné životné cykly zostavovania. Agregátor POM má všetky odkazy na podmoduly pod modulov element.

Nadradený projekt vám umožňuje definovať dedičský vzťah medzi POM. Nadradený POM zdieľa určité konfigurácie, doplnky a závislosti spolu s ich verziami. Väčšinu prvkov po rodičovi zdedia jeho deti - výnimky zahŕňajú artifactId, názova predpoklady.

Pretože neexistujú žiadne prostriedky na spracovanie a žiadny kód na kompiláciu alebo testovanie. Preto sa artefakty pom projektov generujú samy namiesto ľubovoľného spustiteľného súboru.

Definujme typ balenia viacmodulového projektu:

pom

Takéto projekty majú najjednoduchší životný cyklus, ktorý pozostáva iba z dvoch krokov: Inštalácia a nasadiť.

2.5. maven-plugin

Maven ponúka celý rad užitočných doplnkov. Môžu sa však vyskytnúť prípady, keď predvolené doplnky nie sú dostatočné. V tomto prípade poskytuje nástroj flexibilitu pri vytváraní doplnku maven podľa potrieb projektu.

Ak chcete vytvoriť doplnok, nastavte typ balenia projektu:

maven-plugin

The maven-plugin má životný cyklus podobný jarŽivotný cyklus, ale až na dve výnimky:

  • zapojiť: deskriptor je viazaný na fázu generovania zdrojov
  • zapojiť: addPluginArtifactMetadata sa pridáva do fázy balenia

Pre tento typ projektu, a maven-plugin-api závislosť sa vyžaduje.

2.6. odložiť

Enterprise Java Beans - alebo odložiť - pomoc pri vytváraní škálovateľných distribuovaných aplikácií na strane servera. EJB často poskytujú obchodnú logiku aplikácie. Typická architektúra EJB pozostáva z troch komponentov: Enterprise Java Beans (EJBs), kontajner EJB a aplikačný server.

Teraz definujme typ balenia projektu EJB:

odložiť

The odložiť obalový typ má tiež podobný životný cyklus ako jar balenie, ale s iným cieľom balenia. Cieľ balíka pre tento typ projektu je ejb:odložiť.

Projekt, s odložiť typ balenia, vyžaduje a maven-ejb-plugin na vykonávanie cieľov životného cyklu. Maven poskytuje podporu pre EJB 2 a 3. Ak nie je zadaná žiadna verzia, použije sa predvolená verzia 2.

2.7. rar

Zdrojový adaptér - alebo rar - je archívny súbor, ktorý slúži ako platný formát na nasadenie adaptérov prostriedkov na aplikačný server. V zásade ide o ovládač na úrovni systému, ktorý pripája aplikáciu Java k podnikovému informačnému systému (EIS).

Tu je vyhlásenie o type balenia adaptéra zdrojov:

rar

Každý archív adaptéra prostriedkov sa skladá z dvoch častí: a jar súbor, ktorý obsahuje zdrojový kód a ra.xml ktorý slúži ako deskriptor nasadenia.

Fázy životného cyklu sú opäť rovnaké ako fázy a jar alebo vojna balenie s jednou výnimkou: Thebalíček fáza vykonáva rar cieľ, ktorý sa skladá z a maven-rar-plugin zabaliť archívy.

3. Ostatné typy balenia

Doteraz sme sa pozreli na rôzne typy obalov, ktoré Maven ponúka ako predvolené. Teraz si predstavme, že chceme, aby náš projekt vytvoril artefakt s .PSČ predĺženie. V takom prípade nám predvolené typy obalov nemôžu pomôcť.

Maven tiež poskytuje niektoré ďalšie typy obalov prostredníctvom doplnkov. Pomocou týchto doplnkov môžeme definovať vlastný typ balenia a jeho životný cyklus zostavenia. Niektoré z týchto typov sú:

  • msi
  • ot./min
  • decht
  • tar.bz2
  • tar.gz
  • tbz
  • PSČ

Ak chcete definovať vlastný typ, musíme ho definovať balenietypu a fázy počas jeho životného cyklu. Za týmto účelom vytvorte a komponenty.xml súbor pod src / main / resources / META-INF / plexus adresár:

 org.apache.maven.lifecycle.mapping.LifecycleMapping zip org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping org.apache.maven.plugins: maven-resources-plugin: resources com.baeldung.maven.plugins: maven-zip- plugin: zip org.apache.maven.plugins: maven-install-plugin: nainštalovať org.apache.maven.plugins: maven-deploy-plugin: nasadiť 

Až doteraz spoločnosť Maven nevie nič o našom novom type balenia a jeho životnom cykle. Aby sme to zviditeľnili, pridajme doplnok do pom súbor projektu a súbor rozšírenia do pravda:

  com.baeldung.maven.plugins maven-zip-plugin true 

Teraz bude projekt k dispozícii na skenovanie a systém to preskúma doplnky a compnenets.xml spis tiež.

Okrem všetkých týchto typov ponúka Maven prostredníctvom externých projektov a doplnkov množstvo ďalších druhov obalov. Napríklad, nar (natívny archív), swfa swc sú typy obalov pre projekty, ktoré produkujú obsahy Adobe Flash a Flex. Pre takéto projekty potrebujeme doplnok, ktorý definuje vlastné balenie, a úložisko, ktoré obsahuje doplnok.

4. Záver

V tomto článku sme sa pozreli na rôzne typy obalov dostupných v Mavene. Tiež sme sa oboznámili s tým, čo tieto typy predstavujú a ako sa líšia vo svojich životných cykloch. Na konci sme sa tiež naučili, ako definovať vlastný typ balenia a prispôsobiť predvolený životný cyklus zostavenia.

Všetky príklady kódov na Baeldungu sú zostavené pomocou Mavenu. Nezabudnite si pozrieť naše rôzne konfigurácie Maven cez 0n GitHub.


$config[zx-auto] not found$config[zx-overlay] not found