gradle vs maven maven plugins
Denne opplæringen vil diskutere forskjellene mellom Gradle vs Maven. Du vil også lære om ulike Maven-plugins og konfigurasjoner:
Som Maven er Gradle et automatiseringsverktøy som brukes av Java-utviklere for en build. Gradle er et open source-verktøy og bruker et språk som er spesifikt for domenet og er utviklet i Groovy.
=> Sjekk ut den perfekte Maven Training Guide her.
Hva du vil lære:
Gradle mot Maven
Nøkkelforskjellene mellom Gradle og Maven er tabellert nedenfor:
Gradle | Maven |
---|---|
Når det gjelder ytelse, er Gradle bedre siden den bare håndterer den nåværende løpende oppgaven og ikke inngangen eller utgangen som er gitt. | Maven bruker ikke forrige byggeartefakter eller hurtigbuffer for å lage prosjektet, så tiden det tar å generere et nytt prosjekt er mer. |
Det er et automatiseringssystem som er utviklet i Groovy | Det er et bygge- og prosjektledelsesverktøy. |
Gradle drives ikke av noen xml-fil for prosjektbyggingen, i stedet bruker den språket - Groovy som er domenespesifikt. Prosjektinformasjonen lagres i Gradle-verktøyet. | Maven drives av en xml-fil som inneholder informasjon om avhengigheter, plugins og profiler og så videre. |
Gradle jobber trinnvis og gir en raskere ferdigstillelse. | Maven tar ikke en inkrementell tilnærming og er tregere når det gjelder byggingstider enn Gradle. |
Gradle script er enkelt, ikke langt og kan forstås lett. | Maven har xml-filen som er beskrivende, lang og ikke lett forståelig. |
Gradle kan enkelt tilpasses, siden det har mange fleksibiliteter når det gjelder stort antall tilgjengelige alternativer i verktøyet med IDE-støtte. | Mavens tilpasning er ikke lett og noen ganger ikke mulig, siden den ikke har IDE-støtte. |
Målet for et Gradle-verktøy er å ha nye funksjoner i prosjektet. | Målet for et Maven-verktøy er å fullføre et prosjekt på en bestemt tid. |
I Gradle er ikke Java-kompilering et nødvendig trinn. | I Maven er kompilering et nødvendig trinn. |
Gradle er et relativt moderne verktøy, og brukerne har et begrenset antall. | Maven er et kjent verktøy og populært blant Java-utviklerne. |
Tallrike avhengigheter for prosjektet kan legges til i Gradle uten bruk av xml. | Tallrike avhengigheter kan legges til prosjektet ved å legge dem til xml-filen (pom), og dermed gjøre det mer komplekst og vanskelig å administrere enn Gradle. |
Build.gradle-filen inneholder elementene som gruppe, baseName og versjon. | Pom.xml-filen inneholder elementene som, og. |
Få flere forskjeller mellom Maven mot Gradle
Gradle er konstruert av en gruppe oppgaver som må utføres. Mens Maven har en konstant og presis modell av faser. Maven-mål er knyttet til fasene i prosjektet, og hvert mål ligner Gradle-oppgavene.
Opptreden
Når det gjelder ytelse, kan både Gradle og Maven kjøre mer enn en bygger på forskjellige moduler parallelt.
Imidlertid følger Gradle en trinnvis byggemetode og verifiserer om oppgavene er modifisert eller ikke, og handler bare om filene som blir oppdatert.
Gradle har bedre ytelse på grunn av funksjonene som er oppført nedenfor:
- Java-klassesammensetning på en inkrementell måte.
- Gjenbruk av byggeartefakter fra andre Gradle bygger med lignende innganger.
- Mer bruk av APIer.
- Raskere kompilering ved hjelp av kompilerdemon.
Bygg cacheadministrasjon gjør Gradle mye raskere enn Maven.
Fleksibilitet
Gradle brukes av Google som et byggeverktøy for Android fordi det er designet på en slik måte at det kan utvides med de mest grunnleggende metodene. Gradles modell kan brukes til utvikling av C eller C ++ og kan utvides til alle andre omgivelser.
Maven kan ikke tilpasses enkelt og er ofte ikke mulig. Dette gjør det lettere å forstå Maven builds hvis vi ikke trenger å håndtere noen komplekse eller eksklusive krav. Gradle kan imidlertid enkelt tilpasses for bruk.
Gradle gir et interessant interaktivt nettverksgrensesnitt for koding, feilsøking og optimaliseringsoppgaver i Build Scan. Det gir viktig informasjon om trender, historie og andre parametere på bygningen.
Avhengighetsstyring
Gradle har bedre APIer og avhengighetsimplementering enn Maven. Dessuten tillater det sammenfallende cacher. Dette betyr at flere prosjekter kan bruke den vanlige hurtigbufferen uten å bli overskrevet av hverandre. Gradle har kontrollsum og synkroniserer cacher sammen med arkivene.
Den har noen avhengighetsstyringsegenskaper som:
- Erstatningsregler for kompatible biblioteker.
- Byttet ut etter regler.
- Gjenopprett avhengighetene til prosjektet med eksterne og omvendt.
Både Gradle og Maven har dynamiske og transitive avhengigheter. Maven har lokale, sentrale og eksterne arkiver mens Gradle har JCenter. Det er også tilpassede arkiver internt for organisasjonene.
Kodningseksempler på Gradle And Maven
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
For å utføre et Maven-mål som genererer en jar-fil, brukes følgende Maven-kommando:
hvordan du sletter et element fra en array-java
mvn package
Dermed ser vi at pom.xml-filen er beskrivende, og Maven-prosjekter med flere oppgaver, konfigurasjoner og avhengigheter vil ha lang xml-fil.
Den tilsvarende build.gradle-koden som utfører det samme resultatet, er gitt nedenfor:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Dermed ser vi at Gradle-skriptet er kortere sammenlignet med Maven. Kommandoen nedenfor brukes til å utføre en gruppe oppgaver.
gradle tasks –all
Vi ser at Gradle er mer dyktig enn Maven. Men det kan være anledninger når vi ikke trenger alle disse tilleggsfunksjonene til Gradle. Så Maven er mer egnet for små prosjekter mens Gradle mest brukes i større prosjekter.
Gradle Vs Maven Basic Commands
Følgende tabell viser noen grunnleggende kommandoer for Gradle vs Maven:
Hensikt | Gradle-kommando | Maven kommando |
---|---|---|
sikker | Junit-tester kjøres i en isolert klasselaster. | |
Å generere WAR / EAR / JAR | gradere monteres | mvn-pakke |
Å løpe og kompilere | gradertest | mvn test |
Slett katalog med build | gradere ren | mvn ren |
Integrer med Eclipse | gradvis formørkelse | mvn formørkelse: formørkelse |
For installasjon | gradere installere | mvn installere |
For å få versjonen | gradering -versjon | mvn -versjon |
Vi kan konvertere Gradle til Maven og omvendt.
Vi kan følge trinnene nedenfor for å endre Maven til Gradle:
#1) Naviger til Maven-prosjektmappen (plassering av pom.xml-filen).
#to) Utfør kommandoen grad init.
Dette vil resultere i å generere en Gradle-bygg samtidig settings.gradle fil og build.gradle filer blir opprettet.
For å endre Gradle til Maven følger vi trinnene nedenfor i rekkefølge:
# 1) build.gradle filen skal ha Maven-plugin.
# 2) build.gradle filen skal ha følgende kodeblokk:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Så kjør gradere installere.
Dette vil resultere i å generere pom-default.xml-filer inne i pom-undermappen.
Configuration Of Maven
Maven-konfigurasjonsinformasjon for bruk og byggte prosjekter forblir på følgende steder:
- MAVEN_OPTs miljøvariabel : Den inneholder informasjonen som er nødvendig for å starte Java Virtual Machine (JVM) og gir også tilleggsfunksjoner som minneinnstillinger for JVM kan settes til en verdi som -Xms256m -Xmx512m.
- Settings.xml-fil: Denne filen ligger i katalogen USER_HOME / .m2. Denne filen tar seg av de fleste konfigurasjoner som brukes i alle prosjektene som er bygget i Maven.
- .mvn mappe: Denne mappen finner et sted på øverste nivå i prosjektkatalogen. Filene jvm.config, maven.config og extensions.xml har informasjon om den prosjektspesifikke konfigurasjonen.
- .mvn / extension.xml-fil
- .mvn / maven.config-fil
- .mvn / jvm.config-fil
Konfigurasjon av Maven gjøres på nivåene som er oppført nedenfor:
- Installasjon: Dette er innkvartert under installasjonen av Maven.
- Prosjekt: Dette er den statiske som opprettholdes i pom.xml-filen.
- Bruker: Dette er konfigurert for en bestemt bruker.
Prosjektkonfigurasjonen brukes på hele prosjektet mens de andre konfigurasjonene (installasjon og bruker) brukes på miljøet der vi jobber. Installasjonen og brukerkonfigurasjonene kan ikke legges til som en del av de delte prosjektdataene.
Lokal depotkonfigurasjon
Det lokale depotplasseringen kan endres som en del av konfigurasjonen til brukeren. Som standard er plasseringen .m2-katalogen. Dette oppnås ved hjelp av xml-koden nedenfor.
path to the directory
Proxy-konfigurasjon
Proxy-konfigurasjonen kan opprettholdes i innstillingene.
Konfigurasjon av parallell gjenstandsoppløsning
Maven laster ned maksimalt 5 gjenstander fra forskjellige grupper på en gang.
For å laste ned to gjenstander, må vi spesifisere følgende kommando:
mvn -Dmaven.artifact.threads = 2 bekreft
Implementering og sikkerhetskonfigurasjon
seksjonen beskriver lagringsplassene som skal distribueres i et bestemt prosjekt. Informasjon som brukernavn, passord og andre sikkerhetsparametere kan ikke plasseres inne i prosjektet. For å kunne gi denne informasjonen, må vi legge dem til i kartlagt ID-en til distribusjonsregisteret i prosjektet.
Dette oppnås ved hjelp av xml-koden nedenfor.
testrepository test password
Profiler Konfigurasjoner
Maven repository kan konfigureres til å legges inn i profilen. Om gangen kan det være mer enn én profil. Avhengig av kravet, kan vi beholde en aktiv profil slik at vi kan bytte til forskjellige miljøer.
Andre valgfrie konfigurasjoner
For å ha en miljøspesifikk konfigurasjon som ikke er spesifikk for hvert prosjekt, må vi konfigurere innstillingene.
c ++ konverter char * til int
Maven inneholder en innstillingsfil som er til stede i installasjons- eller brukerens hjemmekatalog. Den tar seg av konfigurasjonen av noen av miljøparametrene som vist nedenfor:
- Server brukernavn og passord
- Plassering av depotleder
- HTTP proxy-server
Sikkerhetskonfigurasjoner
Till Maven 2.1.0+ har vi muligheten til å kryptere passordene i innstillingsfilen. Men vi må konstruere et hovedpassord før vi går for kryptering.
Maven Plugins
Maven-plugins er en integrert del av Maven-rammeverket. Hver plugin er tilordnet en bestemt oppgave.
Det er to typer plugins som vist nedenfor:
- Bygg plugins : De kjøres på byggetiden og skal beskrives under byggekoden i pom.xml-filen.
- Rapporteringsprogramtillegg : De kjøres på stedets genereringstid og skal beskrives under rapporteringstaggen i pom.xml-filen.
Listen nedenfor viser noen av Maven core plugins:
Core Plugins | Oppgaver utført |
---|---|
ren | Renser opp gjenstander etter bygningen. |
kompilator | Java kildekode er samlet. |
utplassere | Bygge gjenstander distribueres til det eksterne depotet. |
installere | Bygge gjenstander er installert i det lokale depotet. |
verifier | Brukes til integrasjonstester. |
ressurser | Utdatakatalogen får kopien av ressursene for å inkludere i Jar. |
nettstedet | Nåværende prosjektsted genereres. |
verifier | Brukes til integrasjonstest og sjekker spesifikke forhold. |
Noen av Maven Reporting-pluginene er oppført nedenfor:
Rapporteringsprogramtillegg | Oppgaver utført |
pmd | En PMD-rapport genereres. |
vekslingslogg | Nylige endringer fra SCM genereres i form av liste. |
Endringer | Rapport om utgivelsessporeren genereres. |
sjekkestil | Checkstyle-rapporten genereres. |
Javadoc | Java doc for prosjektet er generert. |
surefire-rapport | Resultatene av enhetstester genereres i form av rapport. |
linkcheck | Linkcheck rapport for prosjektdokumentasjon genereres. |
jxr | En kildekorsreferanse genereres. |
FAQ-seksjonen
Q # 1) Er Maven bedre enn Gradle?
Svar: Gradle bruker en trinnvis tilnærming og arbeids unngåelse. Gradle overvåker inngangs- og utgangsoppgavene og utfører de nødvendige. For mindre prosjekter er Maven likevel foretrukket mens Gradle passer for større og komplekse prosjekter.
Q # 2) Hvorfor er Gradle raskere enn Maven?
Svar: Gradle er mye raskere enn Maven på grunn av Gradles tilnærminger nedenfor.
- Bruk av Gradle Daemon som holder bygningsdetaljer klare i minnet.
- Kompilering på en inkrementell måte.
- Bruk av build-cache som henter gjenstandene fra tidligere builds.
- Modellering av avhengigheter på en effektiv måte av Gradle ved hjelp av Java-plugin.
Spørsmål 3) Hva er Maven Gradle?
Svar: Gradle er et automatiseringsverktøy som er utviklet på funksjonene til Apache Ant og Apache Maven. Det er åpen kildekode og fungerer på Groovy-basert domenerelatert språk. Den drives ikke av pom.xml-filen som den brukes av Maven for prosjektavhengigheter og konfigurasjoner.
Q # 4) Hvorfor foretrekkes Maven?
Svar:
Maven foretrekkes på grunn av følgende fordeler:
- Sentralt arkiv for alle prosjektavhengigheter.
- Opprettholder en felles mappestruktur i organisasjonene.
- Kan integreres med versjonskontrollverktøy som Git og kontinuerlig integrasjonsverktøy som Jenkins.
- Byggeprosessen er gjort enklere, enkel og ensartet.
Q # 5) Er Maven bare for Java?
Svar: Maven er et prosjektledelses- og byggeverktøy som vanligvis brukes til Java-prosjekter. Imidlertid kan den brukes til prosjekter utviklet i Ruby, C #, Scala, og så videre.
Sp # 6) Hvorfor brukes Maven i formørkelse?
Svar: Eclipse IDE laster automatisk ned avhengighetene og konfigurasjonene fra Maven-arkivene. Å lage nye Maven-prosjekter, støtte til eksisterende Maven Project og pom .xml kan også gjøres ved hjelp av Eclipse.
Q # 7) Hvilket språk er Gradle?
Svar: Gradle gir et domenerelatert språk, også kalt DSL for build. Dette språket er tilgjengelig i Groovy og Kotlin.
sorter kommando i unix med eksempel
Sp # 8) Hva er fordelene med Maven?
Maven har noen avhengigheter som følgende:
- Sentralt arkiv for alle prosjektavhengigheter.
- Opprettholder en felles mappestruktur i organisasjonene.
- Kan integreres med versjonskontrollverktøy som Git og kontinuerlig integrasjonsverktøy som Jenkins.
- Byggeprosessen gjøres enklere og enkel.
Konklusjon
Denne opplæringen diskuterte konseptene som Gradle vs Maven, hvordan konvertere Gradle til Maven, og omvendt, Maven-konfigurasjoner og plugins. Også noen av de grunnleggende kommandoene på Maven og Gradle ble utforsket.
Når det gjelder Maven-plugins, diskuterte vi noen av rapporterings- og core Maven-plugins.
Ettersom Maven er et populært tema i markedet, er det nødvendig å utvikle en forståelse av emnet og utvikle kompetanse på dette verktøyet.
=> Les gjennom Easy Maven Training Series.
Anbefalt lesing
- Hva er Maven - Maven Tutorial for nybegynnere
- Hvordan lage gradeprosjekt med selen
- Hvordan bruke Gradle til å bygge, teste og distribuere prosjekter
- Gatling Script & Lag Gatling Project ved hjelp av Maven Archetype
- Integrering av Maven med TestNg ved hjelp av Maven Surefire Plugin
- Hva er POM (prosjektobjektmodell) og pom.xml i Maven
- Konfigurere Maven med Eclipse Java IDE
- 31 Ofte stilte spørsmål og svar fra Maven-intervju