gradle vs maven maven plugins
Tento tutoriál bude diskutovať o rozdieloch medzi Gradle a Maven. Dozviete sa tiež o rôznych pluginoch a konfiguráciách Maven:
Rovnako ako Maven, aj Gradle je automatizačný nástroj používaný vývojármi Javy na zostavenie. Gradle je nástroj s otvoreným zdrojovým kódom a využíva jazyk, ktorý je špecifický pre danú doménu, a je vyvinutý v jazyku Groovy.
=> Vyskúšajte Sprievodcu výcvikom Perfect Maven tu.
Čo sa dozviete:
Gradle Vs Maven
Hlavné rozdiely medzi Gradle a Maven sú uvedené nižšie:
Gradle | Maven |
---|---|
Pokiaľ ide o výkon, Gradle je lepší, pretože sa zaoberá iba aktuálnou bežiacou úlohou, a nie vstupom alebo výstupom, ktoré sú poskytované. | Maven na vytvorenie projektu nepoužíva predchádzajúce artefakty zostavenia ani medzipamäť, takže času potrebného na vygenerovanie nového projektu je viac. |
Jedná sa o systém automatizácie, ktorý je vyvinutý v Groovy | Jedná sa o nástroj na zostavovanie a projektové riadenie. |
Gradle nie je riadený žiadnym súborom XML pre zostavenie projektu, ale používa jazyk - Groovy, ktorý je špecifický pre doménu. Informácie o projekte sa uchovávajú v nástroji Gradle. | Maven je riadený súborom XML, ktorý obsahuje informácie o závislostiach, doplnkoch a profiloch atď. |
Gradle pracuje postupne a poskytuje rýchlejšie dokončenie zostavenia. | Maven neprijíma postupný prístup a je časovo pomalší z hľadiska časovania stavania ako Gradle. |
Písmo Gradle je jednoduché, nie zdĺhavé a dá sa ľahko pochopiť. | Maven má súbor XML, ktorý je popisný, zdĺhavý a nedá sa ľahko pochopiť. |
Gradle je možné ľahko prispôsobiť, pretože má veľkú flexibilitu, pokiaľ ide o veľké množstvo možností dostupných v nástroji s podporou IDE. | Prispôsobenie Maven nie je ľahké a niekedy nemožné, pretože nemá podporu IDE. |
Cieľom nástroja Gradle je mať v projekte nové funkcie. | Cieľom nástroja Maven je dokončiť projekt v stanovenom čase. |
V Gradle nie je kompilácia Java požadovaným krokom. | V Mavene je kompilácia požadovaným krokom. |
Gradle je pomerne moderný nástroj a jeho počet používateľov je obmedzený. | Maven je známy nástroj a je populárny medzi vývojármi Java. |
Početné závislosti pre projekt je možné pridať do programu Gradle bez použitia xml. | Do projektu je možné pridať množstvo závislostí tak, že ich pridáte do súboru xml (pom), čím je správa komplikovanejšia a náročnejšia ako Gradle. |
Súbor Build.gradle obsahuje prvky ako skupina, baseName a verzia. | Súbor Pom.xml obsahuje prvky ako, a. |
Niekoľko ďalších rozdielov medzi Maven vs. Gradle
Gradle je zostavený zo skupiny úloh, ktoré je potrebné vykonať. Zatiaľ čo Maven má stály a presný model fáz. Ciele Maven sú spojené s fázami projektu a každý cieľ je podobný úlohám v Gradle.
Výkon
Pokiaľ ide o výkon, môžu Gradle aj Maven paralelne spúšťať viac ako jedno zostavenie na rôznych moduloch.
Gradle sa však riadi prístupom postupného budovania a overuje, či sú úlohy zmenené alebo nie, a zaoberá sa iba aktualizovanými súbormi.
Gradle má lepší výkon vďaka funkciám uvedeným nižšie:
- Kompilácia triedy Java inkrementálnym spôsobom.
- Opätovné použitie artefaktov stavania iných stavieb Gradle s podobnými vstupmi.
- Viac využívania rozhraní API.
- Rýchlejšia kompilácia pomocou démona kompilátora.
Vďaka správe spravovania vyrovnávacej pamäte je Gradle oveľa rýchlejší ako Maven.
Flexibilita
Gradle používa Google ako nástroj na vytváranie pre Android, pretože je navrhnutý tak, aby ho bolo možné rozšíriť pomocou tých najzákladnejších metodík. Gradleho model je možné využiť na vývoj jazyka C alebo C ++ a je možné ho rozšíriť do ľubovoľného iného prostredia.
Maven sa nedá ľahko prispôsobiť a často to nie je možné. Toto uľahčuje pochopenie zostáv Maven, ak nemusíme riešiť žiadne zložité alebo exkluzívne požiadavky. Avšak Gradle je ľahko prispôsobiteľný na použitie.
Gradle poskytuje zaujímavé interaktívne webové používateľské rozhranie na kódovanie, ladenie a tvorbu úloh optimalizácie v Build Scan. Poskytuje dôležité informácie o trendoch, histórii a ďalších parametroch zostavenia.
Správa závislostí
Gradle má lepšiu implementáciu API a závislostí ako Maven. Okrem toho umožňuje náhodné kešky. To znamená, že spoločnú vyrovnávaciu pamäť môže využívať viac projektov bez toho, aby sa navzájom prepísali. Gradle má kontrolný súčet a synchronizuje cache spolu s úložiskami.
Má niektoré charakteristiky riadenia závislostí, ako napríklad:
- Pravidlá substitúcie pre kompatibilné knižnice.
- Pravidlá ReplacedBy.
- Obnovte závislosti projektu od externých a naopak.
Gradle aj Maven majú dynamické a prechodné závislosti. Maven má lokálne, centrálne a vzdialené úložiská, zatiaľ čo Gradle má JCenter. V organizáciách sú tiež k dispozícii prispôsobené úložiská.
Príklady kódovania Gradle a 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
Na vykonanie cieľa Maven, ktorý generuje súbor jar, sa použije nasledujúci príkaz Maven:
aký je najlepší e-mail na použitie
mvn package
Vidíme teda, že súbor pom.xml je popisný a projekty Maven s viacerými úlohami, konfiguráciami a závislosťami budú mať zdĺhavý súbor XML.
Zodpovedajúci kód build.gradle, ktorý vykonáva rovnaký výsledok, je uvedený nižšie:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Vidíme teda, že skript Gradle je v porovnaní s Mavenom kratší. Nasledujúci príkaz sa používa na vykonanie skupiny úloh.
gradle tasks –all
Vidíme, že Gradle je schopnejší ako Maven. Môžu sa však vyskytnúť prípady, keď nevyžadujeme všetky tieto ďalšie funkcie Gradle. Maven je teda vhodnejší pre malé projekty, zatiaľ čo Gradle sa väčšinou používa vo väčších projektoch.
Základné príkazy Gradle Vs Maven
Nasledujúca tabuľka obsahuje zoznam základných príkazov Gradle vs Maven:
Účel | Príkaz Gradle | Príkaz Maven |
---|---|---|
istý oheň | Testy Junit prebiehajú v izolovanom zavádzači tried. | |
Na vygenerovanie WAR / EAR / JAR | gradle zostaviť | balíček mvn |
Spustiť a zostaviť | gradle test | mvn test |
Odstrániť adresár zostavy | gradle čistý | mvn čisté |
Integrácia s Eclipse | zatmenie gradle | zatmenie mvn: zatmenie |
Na inštaláciu | gradle nainštalovať | inštalácia mvn |
Ak chcete získať verziu | gradle -verzia | mvn -verzia |
Gradle môžeme previesť na Maven a naopak.
Podľa nasledujúcich pokynov môžeme zmeniť Maven na Gradle:
# 1) Prejdite do priečinka projektu Maven (umiestnenie súboru pom.xml).
#dva) Vykonajte príkaz gradle init.
Výsledkom bude súčasné generovanie zostavy Gradle nastavenie.gradle spis a build.gradle súbory sa vytvoria.
Ak chcete zmeniť Gradle na Maven, postupujte podľa nasledujúcich krokov v tomto poradí:
# 1) build.gradle súbor by mal mať doplnok Maven.
# 2) build.gradle súbor by mal mať nasledujúci blok kódu:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Potom vykonajte gradle nainštalovať.
Výsledkom bude generovanie súborov pom-default.xml vo vnútri podpriečinka pom.
Konfigurácia Maven
Informácie o konfigurácii Maven pre použitie a zostavené projekty zostávajú na nasledujúcich miestach:
- MAVEN_OPTs environmentálna premenná : Obsahuje informácie potrebné na spustenie Java Virtual Machine (JVM) a dodáva aj ďalšie funkcie, ako napríklad nastavenie pamäte JVM je možné nastaviť na hodnotu ako -Xms256m -Xmx512m.
- Súbor Settings.xml: Tento súbor sa nachádza v adresári USER_HOME / .m2. Tento súbor sa stará o väčšinu konfigurácií použitých vo všetkých projektoch vytvorených v Mavene.
- Priečinok .mvn: Tento priečinok nájde miesto na najvyššej úrovni adresára projektu. Súbory jvm.config, maven.config a extensions.xml obsahujú informácie o konfigurácii špecifickej pre projekt.
- súbor .mvn / extension.xml
- súbor .mvn / maven.config
- súbor .mvn / jvm.config
Konfigurácia Maven sa vykonáva na úrovniach uvedených nižšie:
- Inštalácia: Toto je zohľadnené počas inštalácie Mavenu.
- Projekt: Toto je statický údaj udržiavaný v súbore pom.xml.
- Užívateľ: Je nakonfigurovaný pre konkrétneho používateľa.
Konfigurácia projektu sa použije na celý projekt, zatiaľ čo ostatné konfigurácie (inštalácia a používateľ) sa použijú na prostredie, v ktorom pracujeme. Inštaláciu a používateľské konfigurácie nemožno pridať ako súčasť zdieľaných údajov projektu.
Konfigurácia lokálneho úložiska
Umiestnenie lokálneho úložiska je možné zmeniť ako súčasť konfigurácie používateľa. Predvolene je to adresár .m2. Toto je dosiahnuté nižšie uvedeným xml kódom.
path to the directory
Konfigurácia servera proxy
Konfiguráciu proxy servera je možné udržiavať v nastaveniach.
Konfigurácia rozlíšenia paralelného artefaktu
Maven stiahne naraz maximálne 5 artefaktov z rôznych skupín.
Aby sme mohli stiahnuť dva artefakty, musíme zadať nasledujúci príkaz:
mvn -Dmaven.artifact.threads = 2 overiť
Nasadenie a konfigurácia zabezpečenia
Táto časť popisuje úložiská, ktoré sa majú nasadiť v konkrétnom projekte. Informácie ako používateľské meno, heslo a ďalšie bezpečnostné parametre nemožno vložiť do tohto projektu. Aby sme mohli poskytnúť tieto informácie, musíme ich pridať namapované na ID úložiska nasadenia vo vnútri projektu.
Toto je dosiahnuté nižšie uvedeným xml kódom.
testrepository test password
Konfigurácie profilov
Úložisko Maven je možné nakonfigurovať na vloženie do profilu. Súčasne môže existovať viac profilov. V závislosti na požiadavke môžeme ponechať jeden aktívny profil, aby sme mohli prepnúť do rôznych prostredí.
Ďalšie voliteľné konfigurácie
Aby sme mohli mať konfiguráciu špecifickú pre prostredie, ktorá nie je špecifická pre každý projekt, musíme nakonfigurovať nastavenia.
koľko je tam poskytovateľov e-mailov
Maven obsahuje súbor nastavení, ktorý je prítomný v domovskom adresári inštalácie alebo používateľa. Stará sa o konfiguráciu niektorých parametrov prostredia, ako je uvedené nižšie:
- Používateľské meno a heslo servera
- Umiestnenie správcu úložiska
- HTTP proxy server
Konfigurácie zabezpečenia
Až do Maven 2.1.0+ máme vo vnútri súboru nastavení možnosť šifrovania hesiel. Pred šifrovaním však musíme vytvoriť hlavné heslo.
Maven Pluginy
Pluginy Maven sú neoddeliteľnou súčasťou rámca Maven. Každý doplnok je priradený ku konkrétnej úlohe.
Ako je uvedené nižšie, existujú dva typy doplnkov:
- Vytváranie doplnkov : Vykonávajú sa v čase zostavenia a mali by byť popísané pod značkou zostavenia v súbore pom.xml.
- Hlásenie doplnkov : Vykonávajú sa v čase generovania stránky a mali by byť popísané pod značkou prehľadu v súbore pom.xml.
Nasledujúci zoznam zobrazuje niektoré z jadrových doplnkov Maven:
Core Pluginy | Vykonané úlohy |
---|---|
čistý | Po zostavení vyčistí artefakty. |
zostavovateľ | Je kompilovaný zdrojový kód Java. |
nasadiť | Artefakty zostavy sú nasadené do vzdialeného úložiska. |
Inštalácia | Artefakty zostavy sú nainštalované do miestneho úložiska. |
overovateľ | Používa sa na integračné testy. |
zdrojov | Výstupný adresár získa kópiu zdrojov určených na vloženie do Jar. |
stránky | Vygeneruje sa aktuálna stránka projektu. |
overovateľ | Používa sa na test integrácie a kontroluje konkrétne podmienky. |
Niektoré z doplnkov Maven Reporting sú uvedené nižšie:
Hlásenie doplnkov | Vykonané úlohy |
pmd | Generuje sa správa pmd. |
zoznam zmien | Posledné zmeny zo SCM sa generujú vo forme zoznamu. |
zmeny | Je generovaná správa o sledovaní problémov. |
kontrolný štýl | Generuje sa kontrolný prehľad. |
Javadoc | Pre projekt sa vygeneruje dokument Java. |
správa o ohni | Výsledky jednotkových testov sa generujú vo forme protokolu. |
kontrola odkazu | Vygeneruje sa správa Linkcheck pre projektovú dokumentáciu. |
jxr | Generuje sa krížový odkaz na zdroj. |
Sekcia často kladených otázok
Otázka č. 1) Je Maven lepší ako Gradle?
Odpoveď: Gradle používa postupný postup a vyhýbanie sa práci. Spoločnosť Gradle monitoruje vstupné a výstupné úlohy a vykonáva požadované úlohy. Pre menšie projekty je však stále preferovaný Maven, zatiaľ čo Gradle je vhodný pre väčšie a zložité projekty.
Otázka 2) Prečo je Gradle rýchlejší ako Maven?
Odpoveď: Gradle je oveľa rýchlejší ako Maven kvôli nižšie uvedeným prístupom k Gradle.
- Použitie gradle démona, ktorý udržuje pripravené podrobnosti v pamäti.
- Kompilácia inkrementálnym spôsobom.
- Použitie build-cache, ktorá získava artefakty z predchádzajúcich buildov.
- Efektívne modelovanie závislostí pomocou Gradle pomocou Java pluginu.
Otázka č. 3) Čo je Maven Gradle?
Odpoveď: Gradle je nástroj na tvorbu automatizácie, ktorý je vyvinutý na vlastnostiach Apache Ant a Apache Maven. Je to open-source a pracuje s doménovým jazykom založeným na Groovy. Nie je riadený súborom pom.xml, ako ho používa Maven pre závislosti a konfigurácie projektu.
Otázka č. 4) Prečo je Maven preferovaný?
Odpoveď:
Maven je preferovaný z dôvodu nasledujúcich výhod:
- Centrálne úložisko pre všetky závislosti projektu.
- Udržuje spoločnú štruktúru priečinkov v rámci organizácií.
- Môže byť integrovaný s nástrojmi na správu verzií ako Git a nástrojom na kontinuálnu integráciu ako Jenkins.
- Proces zostavovania je zjednodušený, ľahký a jednotný.
Otázka č. 5) Je Maven iba pre Javu?
Odpoveď: Maven je nástroj na správu a vytváranie projektov, ktorý sa všeobecne používa pre projekty Java. Môže sa však použiť na projekty vyvinuté v programoch Ruby, C #, Scala atď.
Otázka č. 6) Prečo sa Maven používa v Eclipse?
Odpoveď: Eclipse IDE automaticky sťahuje závislosti a konfigurácie z archívov Maven. Pomocou Eclipse je tiež možné vytvárať nové projekty Maven, podporovať existujúce projekty Maven a pom .xml.
Otázka č. 7) Aký je jazyk Gradle?
Odpoveď: Gradle dáva pre zostavenie jazyk súvisiaci s doménou, ktorý sa nazýva aj DSL. Tento jazyk je k dispozícii v jazykoch Groovy a Kotlin.
zlúčiť triediť c ++ rekurzívne
Otázka 8) Aké sú výhody Mavenu?
Maven má niektoré závislosti, napríklad nasledujúce:
- Centrálne úložisko pre všetky závislosti projektu.
- Udržuje spoločnú štruktúru priečinkov v rámci organizácií.
- Môže byť integrovaný s nástrojmi na správu verzií ako Git a nástrojom na kontinuálnu integráciu ako Jenkins.
- Proces zostavovania je jednoduchší a ľahší.
Záver
V tomto výučbe sa diskutovalo o konceptoch ako Gradle vs Maven, ako prevádzať Gradle na Maven a naopak, konfigurácie Maven a doplnky. Boli tiež preskúmané niektoré základné príkazy pre Maven a Gradle.
Pokiaľ ide o pluginy Maven, diskutovali sme o niektorých reportovacích a základných doplnkoch Maven.
Pretože je horúcou témou na trhu, je potrebné rozvíjať porozumenie predmetu a rozvíjať odborné znalosti o tomto nástroji.
=> Prečítajte si sériu školení Easy Maven.
Odporúčané čítanie
- Čo je Maven - návod Maven pre začiatočníkov
- Ako vytvoriť projekt Gradle so selénom
- Ako používať Gradle na zostavenie, testovanie a nasadenie projektov
- Gatlingov skript a vytvorenie Gatlingovho projektu pomocou archívu Maven
- Integrácia Maven s TestNg pomocou doplnku Maven Surefire
- Čo sú POM (projektový objektový model) a pom.xml v Mavene
- Konfigurácia Maven pomocou Eclipse Java IDE
- 31 Najčastejšie kladené otázky a odpovede na rozhovor Maven