Kas yra „Apache Maven“? POM, gyvavimo ciklai ir priklausomybių valdymas
Paskelbimo data:
Atnaujinta:
Techniniai straipsniai > Kas yra „Apache Maven“? POM, gyvavimo ciklai ir priklausomybių valdymas
2026 m. būsena ir saugus naudojimas
Trumpai: „Maven“ yra susitarimais pagrįstas „Java“ build ir projektų valdymo įrankis. POM aprašo projekto koordinates, priklausomybes, papildinius ir build nuostatas, o gyvavimo ciklo fazės leidžia komandai vienodai kompiliuoti, testuoti, pakuoti, tikrinti ir publikuoti artefaktus.
Ką išmoksite
- Ką valdo „Maven“, o ką vis dar reikia saugoti versijų valdymo sistemoje arba aprašyti CI konfigūracijoje.
- Kaip tarpusavyje susijusios POM koordinatės, repozitorijos, papildiniai, fazės ir priklausomybių taikymo sritys.
- Kaip skaityti pradinę apžvalgą nepainiojant priklausomybių sprendimo su visu build procesu.
Kam skirtas straipsnis: „Java“ kūrėjams, kurie vertina „Maven“ arba bando perprasti paveldėtą pom.xml.
2026 m. kontekstas: naudokite „Maven Wrapper“, aiškiai nurodykite papildinių versijas, saugokite repozitorijų prisijungimo duomenis ir CI aplinkoje patikrinkite galutinį („effective“) POM. Toliau pateikti pavyzdžiai aiškina pagrindus; dabartinių papildinių ir JDK suderinamumą tikrinkite oficialioje dokumentacijoje.
Saugos pastaba: pradinio straipsnio komandos ir konfigūracijos pavyzdžiai nebuvo iš naujo išbandyti dabartinėje produkcinėje aplinkoje. Prieš juos taikydami atskiroje bandymo aplinkoje patikrinkite palaikomas versijas, atsargines kopijas, prieigos kontrolę ir grįžimo prie ankstesnės būsenos veiksmus.
Pagrindiniai oficialūs šaltiniai
Apžvalga
„Apache Maven“, paprastai vadinamas tiesiog „Maven“, koordinuoja „Java“ build procesą pasitelkdamas projekto objektų modelį (POM), standartinius gyvavimo ciklus ir papildinius. Šiame straipsnyje paaiškinama, kokias užduotis slepia viena mvn komanda.
Turinys
1. Kas yra „Maven“?
„Maven“ yra „Java“ build ir projektų valdymo įrankis. Jei dar neaišku, kuo skiriasi kompiliavimas, paketavimas ir visas build procesas, pirmiausia perskaitykite susijusį straipsnį.
Ką reiškia „Java“ build procesas?
„Maven“ build procesas gali apimti tokias užduotis:
- išspręsti JAR bibliotekų priklausomybes;
- kompiliuoti išeities kodą ir vykdyti testus;
- nurodyti build rezultatų išvesties katalogą;
- sukurti JAR arba WAR artefaktus.
Oficialioje „Maven“ apžvalgoje projekto tikslai apibūdinami taip:
https://maven.apache.org/what-is-maven.html
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal, Maven deals with several areas of concern:
- Making the build process easy
- Providing a uniform build system
- Providing quality project information
- Encouraging better development practices
Praktiškai „Maven“ pateikia įprastą ir pakartojamą projekto build aprašymo bei vykdymo modelį.
2. Ką valdo „Maven“
Toliau aptariamos pagrindinės „Maven“ funkcijos, padedančios build procesą padaryti pakartojamą ir lengviau prižiūrimą.
2-1. Build gyvavimo ciklo užduotys
„Maven“ gyvavimo ciklo fazės nustatyta tvarka paleidžia sukonfigūruotus papildinius. Dažnos komandos:
- mvn test – kompiliuoja kodą ir vykdo testus;
- mvn clean – pašalina ankstesnio build proceso sugeneruotus failus;
- mvn package – sukuria sukonfigūruotą artefaktą, pavyzdžiui, JAR arba WAR.
2-2. Priklausomybių sprendimas
„Maven“ automatiškai išsprendžia bibliotekų priklausomybes – tai viena dažniausiai minimų šio įrankio savybių.
Deklaruotam artefaktui gali reikėti kitų artefaktų. „Maven“ perskaito jo POM ir išsprendžia tranzityvias priklausomybes pagal taikymo sritį, neprivalomumo požymį, išskyrimus ir versijų derinimo taisykles.
Kaip „Maven“ sprendžia tranzityvias priklausomybes išsamiau paaiškina repozitorijų ir POM veikimo seką.
2-3. Priklausomybių metaduomenys ir taikymo sritys
Priklausomybė aprašoma koordinatėmis ir versija, o ne vien JAR failo pavadinimu. Taikymo sritis (scope) nurodo, ar biblioteka reikalinga kompiliuojant, vykdant programą, ar testuojant.
pom.xml taip pat aprašo papildinius ir projekto nuostatas, todėl build aprašą galima perkelti į kitą aplinką. Vis dėlto pakartojamumui būtinos ir kontroliuojamos repozitorijos, aiškiai nurodytos papildinių versijos, palaikomas JDK bei nuoseklios už POM ribų esančios nuostatos.
3. Išvada
„Maven“ aprašo projektą POM faile ir per papildinius vykdo standartinį gyvavimo ciklą. Jis gali spręsti priklausomybes, kompiliuoti, testuoti, pakuoti, tikrinti ir publikuoti artefaktus; tikslų elgesį lemia galutinis POM ir pasirinkta gyvavimo ciklo fazė.
Techniniai straipsniai
Peržiūrėkite visus techninius straipsnius.
Profilis
Peržiūrėkite autoriaus profilį.
Kontaktai