gradle vs maven maven plugins
Denne tutorial vil diskutere forskellene mellem Gradle vs Maven. Du vil også lære om forskellige Maven-plugins og konfigurationer:
Ligesom Maven er Gradle et automatiseringsværktøj, der bruges af Java-udviklere til en build. Gradle er et open source-værktøj og bruger et sprog, der er specifikt for domænet og er udviklet i Groovy.
=> Tjek den perfekte Maven træningsvejledning her.
Hvad du lærer:
Gradle mod Maven
Nøgleforskellene mellem Gradle og Maven er opstillet nedenfor:
Gradle | Maven |
---|---|
Med hensyn til ydeevne er Gradle bedre, da den kun beskæftiger sig med den nuværende kørende opgave og ikke den input eller output, der leveres. | Maven bruger ikke de tidligere artefakter eller cache til at oprette projektet, så den tid, der kræves til at generere et nyt projekt, er mere. |
Det er et automatiseringssystem, der er udviklet i Groovy | Det er et build- og projektstyringsværktøj. |
Gradle drives ikke af nogen xml-fil til projektbygningen, men bruger sproget Groovy, som er domænespecifikt. Projektoplysningerne opbevares i Gradle-værktøjet. | Maven drives af en xml-fil, der indeholder oplysninger om afhængigheder, plugins og profiler osv. |
Gradle arbejder trinvis og giver en hurtigere færdiggørelse af byggeriet. | Maven tager ikke en inkrementel tilgang og er langsommere med hensyn til byggetidspunkter end Gradle. |
Gradle script er simpelt, ikke langt og kan let forstås. | Maven har xml-filen, der er beskrivende, lang og ikke let forståelig. |
Gradle kan let tilpasses, da det har mange fleksibiliteter med hensyn til et stort antal muligheder, der er tilgængelige i værktøjet med IDE-understøttelse. | Mavens tilpasning er ikke let og undertiden ikke mulig, da den ikke har IDE-understøttelse. |
Målet med et Gradle-værktøj er at have nye funktioner i projektet. | Målet med et Maven-værktøj er at afslutte et projekt på en fast tid. |
I Gradle er Java-kompilering ikke et påkrævet trin. | I Maven er kompilering et krævet trin. |
Gradle er et relativt moderne værktøj, og dets brugere er begrænset i antal. | Maven er et velkendt værktøj og populært blandt Java-udviklerne. |
Talrige afhængigheder for projektet kan tilføjes i Gradle uden brug af xml. | Talrige afhængigheder kan føjes til projektet ved at føje dem til xml-filen (pom), hvilket gør det mere komplekst og vanskeligt at administrere end Gradle. |
Build.gradle-filen indeholder elementerne som gruppe, baseName og version. | Pom.xml-filen indeholder elementerne som, og. |
Få flere forskelle mellem Maven Vs Gradle
Gradle er konstrueret af en gruppe opgaver, der skal udføres. Mens Maven har en konstant og præcis model af faser. Maven-mål er knyttet til projektets faser, og hvert mål svarer til Gradle-opgaverne.
Ydeevne
For så vidt angår ydeevne, kan både Gradle og Maven køre mere end én bygger på forskellige moduler parallelt.
Gradle følger dog en trinvis build-tilgang og verificerer, om opgaverne er ændret eller ej, og handler kun om de filer, der bliver opdateret.
Gradle har bedre ydeevne på grund af nedenstående funktioner:
- Java-klassesammensætning på en inkrementel måde.
- Genbrug af bygge artefakter fra andre Gradle bygger med lignende input.
- Mere brug af API'er.
- Hurtigere kompilering ved hjælp af compilerdemon.
Administration af build-cache gør Gradle meget hurtigere end Maven.
Fleksibilitet
Gradle bruges af Google som et build-værktøj til Android, fordi det er designet på en sådan måde, at det kan udvides med de mest basale metoder. Gradles model kan bruges til udvikling af C eller C ++ og kan udvides til ethvert andet miljø.
Maven kan ikke let tilpasses og er ikke ofte mulig. Dette gør det lettere at forstå Maven builds, hvis vi ikke skal håndtere komplekse eller eksklusive krav. Gradle kan dog let tilpasses til brug.
Gradle giver et interessant interaktivt web-UI til kodning, fejlretning og opbygningsoptimeringsopgaver i Build Scan. Det giver vigtig information om trends, historie og andre parametre på build.
Afhængighedsstyring
Gradle har bedre implementering af API'er og afhængigheder end Maven. Desuden giver det mulighed for sammenfaldende cacher. Dette betyder, at flere projekter kan bruge den fælles cache uden at blive overskrevet af hinanden. Gradle har kontrolsum og synkroniserer cacher sammen med arkiverne.
Det har nogle af afhængighedsstyringsegenskaberne som:
- Erstatningsregler for kompatible biblioteker.
- ReplacedBy regler.
- Gendan afhængighederne i projektet med eksterne og omvendt.
Både Gradle og Maven har dynamiske og transitive afhængigheder. Maven har de lokale, centrale og eksterne arkiver, mens Gradle har JCenter. Der er også tilpassede opbevaringssteder internt i organisationerne.
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 at udføre et Maven-mål, der genererer en jar-fil, anvendes følgende Maven-kommando:
bedste dvd-rippesoftware til mac
mvn package
Således ser vi, at pom.xml-filen er beskrivende, og Maven-projekter med flere opgaver, konfigurationer og afhængigheder vil have en lang xml-fil.
Den tilsvarende build.gradle-kode, der udfører det samme resultat, er angivet nedenfor:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Således ser vi, at Gradle-scriptet er kortere sammenlignet med Maven. Nedenstående kommando bruges til at udføre en gruppe af opgaver.
gradle tasks –all
Vi ser, at Gradle er mere i stand end Maven. Men der kan være lejligheder, hvor vi ikke har brug for alle disse yderligere funktioner i Gradle. Så Maven er mere velegnet til små projekter, mens Gradle mest bruges i større projekter.
Gradle Vs Maven grundlæggende kommandoer
Følgende tabel viser nogle grundlæggende kommandoer for Gradle vs Maven:
Formål | Gradle kommando | Maven kommando |
---|---|---|
sikkert | Junit-test køres i en isoleret klasselæsser. | |
At generere WAR / EAR / JAR | gradle samles | mvn-pakke |
At løbe og kompilere | gradertest | mvn test |
Slet katalog over build | gradle ren | mvn ren |
Integrer med Eclipse | gradvis formørkelse | mvn-formørkelse: formørkelse |
Til installation | gradle installation | mvn installere |
For at få versionen | gradle -version | mvn -version |
Vi kan konvertere Gradle til Maven og omvendt.
Vi kan følge nedenstående trin for at ændre Maven til Gradle:
# 1) Naviger til Maven-projektmappen (placering af pom.xml-filen).
#to) Udfør kommandoen gradering init.
Dette vil resultere i at generere en Gradle-build samtidigt settings.gradle fil og build.gradle filer oprettes.
For at ændre Gradle til Maven følger vi nedenstående trin i rækkefølge:
# 1) build.gradle filen skal have Maven-pluginet.
# 2) build.gradle filen skal have følgende kodeblok:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Så udfør gradle installation.
Dette vil resultere i generering af pom-default.xml-filer inde i pom-undermappen.
Konfiguration af Maven
Maven-konfigurationsoplysninger til brug og byggede projekter forbliver følgende steder:
- MAVEN_OPTs miljøvariabel : Den indeholder de nødvendige oplysninger til start af Java Virtual Machine (JVM) og leverer også yderligere funktioner som hukommelsesindstillinger for JVM kan indstilles til en værdi som -Xms256m -Xmx512m.
- Settings.xml-fil: Denne fil findes i biblioteket USER_HOME / .m2. Denne fil tager sig af de fleste konfigurationer, der bruges i alle de projekter, der er bygget i Maven.
- .mvn mappe: Denne mappe finder et sted på det øverste niveau i projektmappen. Filerne jvm.config, maven.config og extensions.xml har oplysninger om den projektspecifikke konfiguration.
- .mvn / udvidelse.xml-fil
- .mvn / maven.config-fil
- .mvn / jvm.config-fil
Konfiguration af Maven udføres på nedenstående niveauer:
- Installation: Dette er imødekommet under installationen af Maven.
- Projekt: Dette er den statiske, der opretholdes i pom.xml-filen.
- Bruger: Dette er konfigureret til en bestemt bruger.
Projektkonfigurationen anvendes på hele projektet, mens de andre konfigurationer (installation og bruger) anvendes på det miljø, hvor vi arbejder. Installation og brugerkonfigurationer kan ikke tilføjes som en del af de delte projektdata.
Lokal lagerkonfiguration
Den lokale lagerplacering kan ændres som en del af brugerens konfiguration. Som standard er placeringen .m2-bibliotek. Dette opnås ved hjælp af nedenstående xml-kode.
path to the directory
Proxy-konfiguration
Proxy-konfigurationen kan opretholdes i indstillingerne.
Konfiguration af parallel artefaktopløsning
Maven downloader maksimalt 5 artefakter fra forskellige grupper på én gang.
For at downloade to artefakter skal vi angive følgende kommando:
mvn -Dmaven.artifact.threads = 2 verificer
Implementering og sikkerhedskonfiguration
sektion beskriver de arkiver, der skal implementeres i et specifikt projekt. Oplysninger som brugernavn, adgangskode og andre sikkerhedsparametre kan ikke placeres inde i projektet. For at give disse oplysninger er vi nødt til at tilføje dem i kortlagt til id'et for implementeringsregistret inde i projektet.
Dette opnås ved hjælp af nedenstående xml-kode.
testrepository test password
Profiler konfigurationer
Maven repository kan konfigureres til at placeres i profilen. Der kan være mere end én profil ad gangen. Afhængigt af kravet kan vi beholde en aktiv profil, så vi kan skifte til forskellige miljøer.
Andre valgfri konfigurationer
For at have en miljøspecifik konfiguration, der ikke er specifik for hvert projekt, skal vi konfigurere indstillingerne.
udvikling af vandfaldssoftware livscyklusmodeller
Maven indeholder en indstillingsfil, der findes i installations- eller brugerens hjemmekatalog. Det tager sig af konfigurationen af nogle af miljøparametrene som vist nedenfor:
- Serverbrugernavn og adgangskode
- Lagringsadministratorens placering
- HTTP-proxyserver
Sikkerhedskonfigurationer
Till Maven 2.1.0+ har vi mulighed for at kryptere adgangskoderne i indstillingsfilen. Men vi skal konstruere en hovedadgangskode, inden vi går til kryptering.
Maven Plugins
Maven-plugins er en integreret del af Maven-rammen. Hvert plugin er tildelt en bestemt opgave.
Der er to typer plugins som vist nedenfor:
- Byg plugins : De udføres på byggetiden og skal beskrives under build-tagget i pom.xml-filen.
- Rapporterings-plugins : De udføres på stedets genereringstid og skal beskrives under rapporteringskoden i pom.xml-filen.
Nedenstående liste viser nogle af Maven core plugins:
Kerne-plugins | Opgaver udført |
---|---|
ren | Renser artefakter efter bygningen. |
kompilator | Java kildekode er kompileret. |
indsætte | Bygningsgenstande distribueres til det eksterne lager. |
installere | Bygningsgenstande er installeret i det lokale lager. |
verifikator | Bruges til integrationstest. |
ressourcer | Outputmappe får kopien af ressourcerne til inkludering i Jar. |
websted | Nuværende projektside genereres. |
verifikator | Bruges til integrationstest og kontrollerer specifikke forhold. |
Nogle af Maven Reporting-plugins er angivet nedenfor:
Rapporterings-plugins | Opgaver udført |
pmd | En PMD-rapport genereres. |
skiftelog | Seneste ændringer fra SCM genereres i form af en liste. |
ændringer | Der oprettes en rapport om tracker. |
checkstyle | Checkstyle-rapporten genereres. |
Javadoc | Java doc til projektet er genereret. |
sikkerhedsrapport | Resultater af enhedstest genereres i form af rapport. |
linkcheck | Linkcheck-rapport til projektdokumentation genereres. |
jxr | En kildekrydsreference genereres. |
Ofte stillede spørgsmål
Q # 1) Er Maven bedre end Gradle?
Svar: Gradle bruger en trinvis tilgang og arbejdsundgåelse. Gradle overvåger input- og outputopgaverne og udfører de nødvendige. Imidlertid foretrækkes Maven stadig, mens Gradle er velegnet til større og komplekse projekter.
Q # 2) Hvorfor er Gradle hurtigere end Maven?
Svar: Gradle er meget hurtigere end Maven på grund af Gradles nedenstående tilgange.
- Brug af Gradle Daemon, der holder bygningsdetaljer klar i hukommelsen.
- Kompilering på en inkrementel måde.
- Brug af build-cache, der henter artefakterne fra tidligere builds.
- Modellering af afhængigheder på en effektiv måde af Gradle ved hjælp af Java-plugin.
Spørgsmål nr. 3) Hvad er Maven Gradle?
Svar: Gradle er et værktøj til automatisering, der er udviklet på funktionerne i Apache Ant og Apache Maven. Det er open source og fungerer på Groovy-baseret domænerelateret sprog. Det er ikke drevet af pom.xml-filen, som den bruges af Maven til projektafhængigheder og konfigurationer.
Spørgsmål nr. 4) Hvorfor foretrækkes Maven?
Svar:
Maven foretrækkes på grund af følgende fordele:
- Central lager for alle projektafhængigheder.
- Opretholder en fælles mappestruktur inden for organisationerne.
- Kan integreres med versionskontrolværktøjer som Git og kontinuerligt integrationsværktøj som Jenkins.
- Bygningsprocessen gøres enklere, let og ensartet.
Q # 5) Er Maven kun til Java?
Svar: Maven er et projektledelses- og byggeværktøj, der generelt bruges til Java-projekter. Det kan dog bruges til projekter udviklet i Ruby, C #, Scala osv.
Spørgsmål nr. 6) Hvorfor bruges Maven i formørkelse?
Svar: Eclipse IDE downloader automatisk afhængigheder og konfigurationer fra Maven-arkiverne. Oprettelse af nye Maven-projekter, support til eksisterende Maven Project og pom .xml kan også gøres ved hjælp af Eclipse.
Q # 7) Hvilket sprog er Gradle?
Svar: Gradle giver et domænerelateret sprog, også kaldet DSL for build. Dette sprog kan fås i Groovy og Kotlin.
hvordan man åbner filen med java
Q # 8) Hvad er fordelene ved Maven?
Maven har nogle afhængigheder som følgende:
- Central lager for alle projektafhængigheder.
- Opretholder en fælles mappestruktur inden for organisationerne.
- Kan integreres med versionskontrolværktøjer som Git og kontinuerligt integrationsværktøj som Jenkins.
- Bygningsprocessen gøres enklere og let.
Konklusion
Denne vejledning diskuterede begreberne som Gradle vs Maven, hvordan man konverterer Gradle til Maven og omvendt, Maven-konfigurationer og plugins. Også nogle af de grundlæggende kommandoer på Maven og Gradle blev udforsket.
For så vidt angår Maven-plugins, diskuterede vi nogle af rapporterings- og centrale Maven-plugins.
Da Maven er et populært emne på markedet, er det nødvendigt at udvikle en forståelse af emnet og udvikle ekspertise på dette værktøj.
=> Læs gennem Easy Maven Training Series.
Anbefalet læsning
- Hvad er Maven - Maven-tutorial til begyndere
- Sådan oprettes gradleprojekt med selen
- Sådan bruges Gradle til at opbygge, teste og implementere projekter
- Gatling Script & Opret Gatling-projekt ved hjælp af Maven Archetype
- Integration af Maven med TestNg ved hjælp af Maven Surefire Plugin
- Hvad er POM (projektobjektmodel) og pom.xml i Maven
- Konfiguration af Maven med Eclipse Java IDE
- 31 Ofte stillede Maven Interview Spørgsmål og svar