gradle vs maven maven plugins
Ta vadnica bo razpravljala o razlikah med Gradlejem in Mavenom. Spoznali boste tudi različne vtičnike in konfiguracije Maven:
Tako kot Maven je tudi Gradle orodje za avtomatizacijo, ki ga razvijalci Java uporabljajo za gradnjo. Gradle je odprtokodno orodje in uporablja jezik, ki je značilen za to domeno in je razvit v Groovyju.
=> Tukaj si oglejte vodnik Perfect Maven Training.
Kaj se boste naučili:
Gradle proti Mavenu
Ključne razlike med Gradlejem in Mavenom so navedene v nadaljevanju:
Gradle | Maven |
---|---|
Kar zadeva zmogljivost, je Gradle boljši, saj se ukvarja samo s trenutno tekočo nalogo, ne pa z vhodnimi ali izhodnimi podatki, ki so na voljo. | Maven za izdelavo projekta ne uporablja predhodnih gradbenih artefaktov ali predpomnilnika, zato je čas, potreben za ustvarjanje novega projekta, daljši. |
Gre za sistem za avtomatizacijo, ki je bil razvit v Groovyju | Je orodje za gradnjo in upravljanje projektov. |
Gradle ne poganja nobena datoteka xml za gradnjo projekta, temveč uporablja jezik - Groovy, ki je odvisen od domene. Podatki o projektu se hranijo v orodju Gradle. | Maven poganja datoteka xml, ki vsebuje informacije o odvisnostih, vtičnikih in profilih itd. |
Gradle deluje postopoma in omogoča hitrejše dokončanje gradnje. | Maven ne uporablja postopnega pristopa in je glede časa gradnje počasnejši od Gradla. |
Skript Gradle je preprost, ne obsežen in ga je mogoče enostavno razumeti. | Maven ima datoteko xml, ki je opisna, dolga in je ni mogoče enostavno razumeti. |
Gradle je mogoče enostavno prilagoditi, saj ima veliko prilagodljivosti glede velikega števila možnosti, ki so na voljo v orodju s podporo za IDE. | Mavenova prilagoditev ni enostavna in včasih tudi nemogoča, saj nima podpore za IDE. |
Cilj orodja Gradle je v projektu imeti nove funkcije. | Cilj orodja Maven je končati projekt v določenem času. |
V Gradleju prevajanje Java ni obvezen korak. | V Mavenu je sestavljanje obvezen korak. |
Gradle je razmeroma moderno orodje in število uporabnikov je omejeno. | Maven je znano orodje in priljubljeno med razvijalci Jave. |
Številne odvisnosti za projekt je mogoče dodati v Gradle brez uporabe xml. | Projektu lahko dodate številne odvisnosti, tako da jih dodate v datoteko xml (pom), zaradi česar je bolj zapleten in težji za upravljanje kot Gradle. |
Datoteka Build.gradle vsebuje elemente, kot so group, baseName in različica. | Datoteka Pom.xml vsebuje elemente, kot so in. |
Nekaj več razlik med Maven in Gradle
Gradle je sestavljen iz skupine nalog, ki jih je treba opraviti. Medtem ko ima Maven stalen in natančen model faz. Cilji Mavena so povezani s fazami projekta in vsak cilj je podoben nalogam Gradle.
Izvedba
Kar zadeva zmogljivost, lahko Gradle in Maven vzporedno izvajata več gradenj na različnih modulih.
Vendar Gradle sledi postopnemu postopku gradnje in preveri, ali so naloge spremenjene ali ne, in se ukvarja samo z datotekami, ki se posodabljajo.
Gradle je zaradi spodaj naštetih funkcij boljši:
- Kompilacija razreda Java na inkrementalni način.
- Ponovna uporaba artefaktov gradnje drugih gradnikov Gradle s podobnimi vhodi.
- Več uporabe API-jev.
- Hitrejša kompilacija s pomočjo demona prevajalnika.
Upravljanje predpomnilnika zgradb naredi Gradle veliko hitrejši kot Maven.
Prilagodljivost
Google Gradle uporablja kot orodje za gradnjo za Android, ker je zasnovan tako, da ga je mogoče razširiti z najosnovnejšimi metodologijami. Gradlov model lahko uporabimo za razvoj C ali C ++ in ga lahko razširimo na katero koli drugo okolje.
Maven ni mogoče enostavno prilagoditi in ni pogosto izvedljiv. Tako je lažje razumeti Mavenove gradnje, če se nam ni treba spoprijeti s kakršnimi koli zapletenimi ali izključnimi zahtevami. Vendar je Gradle enostavno prilagodljiv za uporabo.
Gradle ponuja zanimiv interaktivni spletni uporabniški vmesnik za kodiranje, odpravljanje napak in naloge za optimizacijo gradnje v Build Scan. Zagotavlja pomembne informacije o trendih, zgodovini in drugih parametrih gradnje.
Upravljanje odvisnosti
Gradle ima boljše izvajanje API-jev in odvisnosti kot Maven. Poleg tega omogoča naključne predpomnilnike. To pomeni, da lahko več projektov uporablja skupni predpomnilnik, ne da bi jih drug drugi prepisali. Gradle ima kontrolno vsoto in sinhronizira predpomnilnike skupaj s skladišči.
Ima nekatere značilnosti upravljanja odvisnosti, kot so:
- Pravila zamenjave za združljive knjižnice.
- Zamenjano po pravilih.
- Obnovite odvisnosti projekta z zunanjimi in obratno.
Tako Gradle kot Maven imata dinamično in prehodno odvisnost. Maven ima lokalna, centralna in oddaljena skladišča, Gradle pa JCenter. Obstajajo tudi prilagojeni repozitoriji, ki so notranji za organizacije.
Primeri kodiranja Gradleja in Mavena
2.0.0 com.softwareTest Java-builds jar 2.0 j unit junit 2.10 org.apache.maven.plugins maven-surefire-plugin 2.2.1
Za izvedbo cilja Maven, ki ustvari datoteko jar, se uporabi naslednji ukaz Maven:
brezplačna zaščita požarnega zidu za Windows 10
mvn package
Tako vidimo, da je datoteka pom.xml opisna, projekti Maven z več nalogami, konfiguracijami in odvisnostmi pa bodo imeli dolgo datoteko xml.
Ustrezna koda build.gradle, ki ima enak rezultat, je navedena spodaj:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Tako vidimo, da je Gradlejev scenarij krajši v primerjavi z Mavenom. Spodnji ukaz se uporablja za izvajanje skupine nalog.
gradle tasks –all
Vidimo, da je Gradle sposobnejši od Mavena. Vendar se lahko zgodi, da ne potrebujemo vseh teh dodatnih funkcij Gradle. Maven je torej bolj primeren za manjše projekte, Gradle pa se večinoma uporablja pri večjih projektih.
Osnovni ukazi Gradle Vs Maven
V naslednji tabeli so navedeni nekateri osnovni ukazi Gradle proti Maven:
Namen | Ukaz Gradle | Ukaz Maven |
---|---|---|
zanesljiv ogenj | Preskusi Junit se izvajajo v ločenem nakladalniku razreda. | |
Ustvariti WAR / EAR / JAR | gradle sestaviti | mvn paket |
Za zagon in prevajanje | gradle test | mvn test |
Izbriši imenik gradnje | gradle čist | mvn čisto |
Integrirajte z Eclipse | mrk gradle | mvn eclipse: mrk |
Za namestitev | gradle namestite | namestitev mvn |
Da bi dobili različico | gradle -verzija | mvn -verzija |
Gradle lahko pretvorimo v Maven in obratno.
Za spremembo Mavena v Gradle lahko sledimo spodnjim korakom:
# 1) Pomaknite se do mape projekta Maven (lokacija datoteke pom.xml).
#two) Izvedite ukaz gradle init.
To bo povzročilo sočasno ustvarjanje Gradle gradnje settings.gradle datoteko in build.gradle datoteke bodo ustvarjene.
Če želite Gradle spremeniti v Maven, sledite spodnjim korakom po vrstnem redu:
# 1) build.gradle datoteka mora imeti vtičnik Maven.
# 2) build.gradle datoteka mora imeti naslednji blok kode:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Nato izvršite gradle namestite.
To bo povzročilo ustvarjanje datotek pom-default.xml znotraj podmape pom.
Konfiguracija Mavena
Podatki o konfiguraciji Maven za uporabo in zgrajene projekte ostanejo na naslednjih mestih:
- MAVEN_OPTs okoljska spremenljivka : Vsebuje informacije, potrebne za zagon navideznega računalnika Java (JVM), poleg tega pa nudi dodatne funkcije, na primer nastavitve pomnilnika JVM lahko nastavite na vrednost -Xms256m -Xmx512m.
- Datoteka Settings.xml: Ta datoteka se nahaja v imeniku USER_HOME / .m2. Ta datoteka skrbi za večino konfiguracij, uporabljenih v vseh projektih, zgrajenih v Mavenu.
- Mapa .mvn: Ta mapa najde mesto na najvišji ravni imenika projekta. Datoteke jvm.config, maven.config in extension.xml vsebujejo informacije o konfiguraciji, specifični za projekt.
- Datoteka .mvn / extension.xml
- Datoteka .mvn / maven.config
- Datoteka .mvn / jvm.config
Konfiguracija Mavena se izvede na spodaj navedenih ravneh:
- Namestitev: To se prilagodi med namestitvijo Mavena.
- Projekt: To je statično, ki se vzdržuje v datoteki pom.xml.
- Uporabnik: Ta je nastavljen za določenega uporabnika.
Konfiguracija projekta se uporablja za celoten projekt, druge konfiguracije (namestitev in uporabnik) pa za okolje, v katerem delamo. Namestitvene in uporabniške konfiguracije ni mogoče dodati kot del skupnih podatkov o projektu.
Konfiguracija lokalnega repozitorija
Lokacijo lokalnega repozitorija lahko spremenite kot del konfiguracije uporabnika. Privzeto je lokacija .m2. To dosežemo s spodnjo kodo xml.
path to the directory
Konfiguracija proxyja
Konfiguracijo proxyja lahko ohranite v nastavitvah.
Konfiguracija vzporedne ločljivosti artefaktov
Maven naenkrat prenese največ 5 artefaktov iz različnih skupin.
Za prenos dveh artefaktov moramo določiti naslednji ukaz:
mvn -Dmaven.artifact.threads = 2 preveri
Uvajanje in konfiguracija varnosti
Poglavje opisuje skladišča, ki jih je treba razporediti v določenem projektu. Podatkov, kot so uporabniško ime, geslo in drugi varnostni parametri, ni mogoče vstaviti v ta projekt. Da bi zagotovili te informacije, jih moramo dodati preslikane v ID odlagališča razmestitve znotraj projekta.
To dosežemo s spodnjo kodo xml.
testrepository test password
Konfiguracija profilov
Maven repozitorij lahko nastavite tako, da ga vstavite v profil. Hkrati je lahko več profilov. Glede na zahteve lahko obdržimo en aktiven profil, da lahko preklopimo v različna okolja.
Druge neobvezne konfiguracije
Da imamo konfiguracijo, specifično za okolje, ki ni specifična za posamezen projekt, moramo konfigurirati nastavitve.
podjetja, ki ponujajo storitve računalništva v oblaku
Maven vsebuje nastavitveno datoteko, ki je prisotna v namestitvenem ali uporabniškem domačem imeniku. Skrbi za konfiguracijo nekaterih okoljskih parametrov, kot je prikazano spodaj:
- Uporabniško ime in geslo strežnika
- Lokacija upravitelja repozitorija
- Strežnik proxy HTTP
Varnostne konfiguracije
Do Maven 2.1.0+ imamo možnost šifriranja gesel v datoteki z nastavitvami. Preden gremo za šifriranje, moramo zgraditi glavno geslo.
Maven vtičniki
Maven vtičniki so sestavni del okvira Maven. Vsak vtičnik je dodeljen določeni nalogi.
Kot je prikazano spodaj, obstajata dve vrsti vtičnikov:
- Zgradite vtičnike : Izvajajo se v času gradnje in jih je treba opisati pod oznako gradnje v datoteki pom.xml.
- Vtičniki za poročanje : Izvedejo se ob ustvarjanju spletnega mesta in jih je treba opisati pod oznako poročanja v datoteki pom.xml.
Spodnji seznam prikazuje nekatere osnovne vtičnike Maven:
Core Plugins | Opravljene naloge |
---|---|
čisto | Po izdelavi očisti artefakte. |
prevajalnik | Izvirna koda Java je sestavljena. |
razporediti | Artefakti zgradbe so razmeščeni v oddaljenem repozitoriju. |
namestite | Artefakti zgradbe so nameščeni v lokalnem repozitoriju. |
preveritelj | Uporablja se za integracijske teste. |
virov | Izhodni imenik dobi kopijo virov za vključitev v Jar. |
spletnem mestu | Ustvari se trenutno mesto projekta. |
preveritelj | Uporablja se za integracijski test in preverja posebne pogoje. |
Nekateri vtičniki Maven Reporting so navedeni spodaj:
Vtičniki za poročanje | Opravljene naloge |
pmd | Ustvari se poročilo pmd. |
dnevnik sprememb | Nedavne spremembe iz SCM se ustvarijo v obliki seznama. |
spremembe | Ustvari se poročilo o sledilniku težav. |
čekovni slog | Ustvari se poročilo Checkstyle. |
Javadoc | Ustvarjen je Java doc za projekt. |
zanesljivo poročilo | Rezultati enotnih testov so ustvarjeni v obliki poročila. |
linkcheck | Ustvari se poročilo Linkcheck za projektno dokumentacijo. |
jxr | Ustvari se navzkrižna referenca vira. |
Pogosta vprašanja
V # 1) Je Maven boljši od Gradla?
Odgovor: Gradle uporablja postopni pristop in izogibanje delu. Gradle spremlja vhodne in izhodne naloge in izvaja tiste, ki so potrebne. Vendar je pri manjših projektih še vedno najprimernejši Maven, medtem ko je Gradle primeren za večje in zapletene projekte.
V # 2) Zakaj je Gradle hitrejši od Mavena?
Odgovor: Gradle je zaradi spodnjih pristopov Gradle veliko hitrejši od Mavena.
- Uporaba Gradle Daemon, ki ohranja podrobnosti o gradnji v spominu.
- Sestavljanje postopoma.
- Uporaba predpomnilnika gradnje, ki dobi artefakte iz prejšnjih zgradb.
- Gradle učinkovito modelira odvisnosti s pomočjo vtičnika Java.
V # 3) Kaj je Maven Gradle?
Odgovor: Gradle je orodje za avtomatizacijo, ki je razvito na značilnostih Apache Ant in Apache Maven. Je odprtokodna in deluje v jeziku, ki temelji na Groovyju, povezanem z domeno. Ne poganja ga datoteka pom.xml, kot jo uporablja Maven za odvisnosti in konfiguracije projekta.
V # 4) Zakaj je Maven najprimernejši?
Odgovor:
Maven je zaželen zaradi naslednjih prednosti:
- Centralno repozitorij za vse odvisnosti projekta.
- V organizacijah ohranja skupno strukturo map.
- Lahko se integrira z orodji za nadzor različic, kot je Git, in orodjem za stalno integracijo, kot je Jenkins.
- Postopek izdelave je poenostavljen, enostaven in enoten.
V # 5) Ali je Maven samo za Javo?
Odgovor: Maven je orodje za upravljanje in gradnjo projektov, ki se običajno uporablja za projekte Java. Vendar pa se lahko uporablja za projekte, razvite v Ruby, C #, Scala itd.
V # 6) Zakaj se Maven uporablja v Eclipseu?
Odgovor: Eclipse IDE samodejno prenese odvisnosti in konfiguracije iz repozitorijev Maven. Tudi ustvarjanje novih Mavenovih projektov, podpora obstoječim Maven Projectom in pom .xml je mogoče s pomočjo Eclipsea.
V # 7) Kateri jezik je Gradle?
Odgovor: Gradle za gradnjo daje jezik, povezan z domeno, imenovan tudi DSL. Ta jezik je na voljo v Groovyju in Kotlinu.
implementirati prednostno vrsto c ++
V # 8) Kakšne so prednosti Mavena?
Maven ima nekaj odvisnosti, kot je naslednja:
- Centralno repozitorij za vse odvisnosti projekta.
- V organizacijah ohranja skupno strukturo map.
- Lahko se integrira z orodji za nadzor različic, kot je Git, in orodjem za stalno integracijo, kot je Jenkins.
- Postopek izdelave je poenostavljen in enostaven.
Zaključek
V tej vadnici so razpravljali o konceptih, kot so Gradle vs Maven, kako pretvoriti Gradle v Maven in obratno, konfiguracije Maven in vtičniki. Raziskali so tudi nekaj osnovnih ukazov na Mavenu in Gradleju.
Kar zadeva vtičnike Maven, smo razpravljali o nekaterih poročilnih in osnovnih vtičnikih Maven.
Ker je Maven vroča tema na trgu, je treba razviti razumevanje teme in razviti strokovno znanje o tem orodju.
=> Preberite serijo Easy Maven Training Series.
Priporočeno branje
- Kaj je Maven - Maven Vadnica za začetnike
- Kako ustvariti projekt Gradle s selenom
- Kako uporabljati Gradle za gradnjo, preizkušanje in uvajanje projektov
- Gatling Script & Ustvari projekt Gatling z uporabo Mavenovega arhetipa
- Integracija Mavena z TestNg z uporabo Maven Surefire Plugin
- Kaj sta POM (projektni objektni model) in pom.xml v Mavenu
- Konfiguriranje Maven z Eclipse Java IDE
- 31 najpogostejših vprašanj in odgovorov za intervju Maven