gradle vs maven maven plugins
Този урок ще обсъди разликите между Gradle срещу Maven. Също така ще научите за различни плъгини и конфигурации на Maven:
Подобно на Maven, Gradle е инструмент за автоматизация, използван от разработчиците на Java за изграждане. Gradle е инструмент с отворен код и използва език, който е специфичен за домейна и е разработен в Groovy.
=> Вижте Тук идеалното ръководство за обучение на Maven.
Какво ще научите:
Gradle срещу Maven
Основните разлики между Gradle и Maven са представени по-долу:
Градле | Мейвън |
---|---|
Що се отнася до производителността, Gradle е по-добър, тъй като се занимава само с текущата текуща задача, а не с предоставените вход или изход. | Maven не използва предишните артефакти или кеш за създаване на проекта, така че времето, необходимо за генериране на нов проект, е повече. |
Това е система за изграждане на автоматизация, която е разработена в Groovy | Това е инструмент за изграждане и управление на проекти. |
Gradle не се управлява от никакъв xml файл за изграждането на проекта, вместо това използва езика - Groovy, който е специфичен за домейна. Информацията за проекта се съхранява в инструмента Gradle. | Maven се управлява от xml файл, който съдържа информация за зависимости, приставки и профили и т.н. |
Gradle работи постепенно и дава по-бързо завършване на изграждането. | Maven не използва инкрементален подход и е по-бавен от гледна точка на времето за изграждане от Gradle. |
Скриптът на Gradle е прост, не дълъг и може лесно да се разбере. | Maven има xml файл, който е описателен, дълъг и не може да бъде лесно разбран. |
Gradle може да се персонализира лесно, тъй като има много гъвкавости по отношение на голям брой опции, налични в инструмента с поддръжката на IDE. | Персонализирането на Maven не е лесно и понякога не е възможно, тъй като няма поддръжка на IDE. |
Целта на инструмент Gradle е да има нови функции в проекта. | Целта на инструмент Maven е да завърши проект за определено време. |
В Gradle компилацията на Java не е задължителна стъпка. | В Maven компилацията е задължителна стъпка. |
Gradle е сравнително модерен инструмент и неговите потребители са ограничени по брой. | Maven е познат инструмент и популярен сред разработчиците на Java. |
В Gradle могат да се добавят множество зависимости за проекта без използването на xml. | Към проекта могат да се добавят множество зависимости, като се добавят към xml файла (pom), като по този начин го правят по-сложен и труден за управление от Gradle. |
Файлът Build.gradle съдържа елементи като група, baseName и версия. | Файлът Pom.xml съдържа елементи като, и. |
Малко повече разлики между Maven срещу Gradle
Gradle е изграден от група задачи, които трябва да бъдат изпълнени. Докато Maven има постоянен и точен модел на фазите. Целите на Maven са свързани с фазите на проекта и всяка цел е подобна на задачите на Gradle.
производителност
Що се отнася до производителността, както Gradle, така и Maven могат да изпълняват паралелно повече от една компилация на различни модули.
Въпреки това Gradle следва подход на постепенно изграждане и проверява дали задачите са модифицирани или не и се занимава само с файловете, които се актуализират.
Gradle има по-добра производителност поради функциите, изброени по-долу:
- Компилация на Java клас по стъпка.
- Повторното използване на артефактите на компилацията на други компилации Gradle с подобни входове.
- Повече използване на API.
- По-бърза компилация с помощта на компилационен демон.
Управлението на кеша на компилация прави Gradle много по-бърз от Maven.
Гъвкавост
Gradle се използва от Google като инструмент за изграждане на Android, тъй като е проектиран по такъв начин, че да може да бъде разширен с най-основните методологии. Моделът на Gradle може да се използва за разработването на C или C ++ и може да бъде разширен до всяка друга среда.
Maven не може лесно да бъде персонализиран и не е често осъществим. Това улеснява разбирането на компилациите на Maven, ако не се налага да се справяме с някакви сложни или изключителни изисквания. Въпреки това Gradle е лесно приспособим за използване.
Gradle предоставя интересен интерактивен уеб потребителски интерфейс за кодиране, отстраняване на грешки и задачи за оптимизиране на изграждането в Build Scan. Той предоставя важна информация за тенденциите, историята и други параметри на компилацията.
Управление на зависимостта
Gradle има по-добри API и внедряване на зависимости от Maven. Освен това позволява съвпадащи кешове. Това означава, че множество проекти могат да използват общия кеш, без да бъдат заменени един от друг. Gradle има контролна сума и синхронизира кешовете заедно с хранилищата.
Той има някои от характеристиките за управление на зависимостите като:
- Правила за заместване на съвместими библиотеки.
- Заменено По правила.
- Възстановете зависимостите на проекта с външни и обратно.
И Gradle, и Maven имат динамични и преходни зависимости. Maven има локални, централни и отдалечени хранилища, докато Gradle има JCenter. Също така има персонализирани хранилища, вътрешни за организациите.
Примери за кодиране на Gradle и 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
За да се изпълни цел на Maven, която генерира jar файл, се използва следната команда на Maven:
искам да тествам продукти за компании
mvn package
По този начин виждаме, че файлът pom.xml е описателен и проектите на Maven с множество задачи, конфигурации и зависимости ще имат дълъг xml файл.
Съответният код на build.gradle, изпълняващ същия резултат, е даден по-долу:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
По този начин виждаме, че скриптът Gradle е по-кратък в сравнение с Maven. Командата по-долу се използва за изпълнение на група задачи.
gradle tasks –all
Виждаме, че Gradle е по-способен от Maven. Но може да има случаи, когато не се нуждаем от всички тези допълнителни функции на Gradle. Така че Maven е по-подходящ за малки проекти, докато Gradle се използва най-вече за по-големи проекти.
Основни команди на Gradle срещу Maven
Следващата таблица изброява някои основни команди на Gradle срещу Maven:
Предназначение | Команда Gradle | Команда Maven |
---|---|---|
сигурен | Junit тестовете се изпълняват в изолиран клас товарач. | |
За генериране на WAR / EAR / JAR | gradle сглобявам | mvn пакет |
За да стартирате и компилирате | тест на градле | mvn тест |
Изтриване на директория на build | gradle clean | mvn чист |
Интегрирайте с Eclipse | градле затъмнение | mvn eclipse: затъмнение |
За монтаж | инсталиране на gradle | mvn инсталиране |
За да получите версията | gradle -версия | mvn -версия |
Можем да конвертираме Gradle в Maven и обратно.
Можем да следваме стъпките по-долу, за да сменим Maven на Gradle:
# 1) Придвижете се до папката на проекта Maven (местоположението на файла pom.xml).
# две) Изпълнете командата gradle init.
Това ще доведе до генериране на Gradle компилация едновременно settings.gradle файл и build.gradle ще бъдат създадени файлове.
За да сменим Gradle на Maven, следваме стъпките по-долу в ред:
# 1) build.gradle файлът трябва да има приставката Maven.
# 2) build.gradle файлът трябва да има следния блок код:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) След това изпълнете инсталиране на gradle.
Това ще доведе до генериране на файлове pom-default.xml в подпапката pom.
Конфигурация на Maven
Информацията за конфигурацията на Maven за използване и изградени проекти остава на следните места:
- MAVEN_OPTs променлива на околната среда : Той съдържа информацията, необходима за стартиране на Java Virtual Machine (JVM), а също така предоставя допълнителни функции като настройките на паметта на JVM могат да бъдат зададени на стойност като -Xms256m -Xmx512m.
- Файл Settings.xml: Този файл се намира в директорията USER_HOME / .m2. Този файл се грижи за повечето конфигурации, използвани във всички проекти, изградени в Maven.
- .mvn папка: Тази папка намира място в най-горното ниво на директорията на проекта. Файловете jvm.config, maven.config и extensions.xml съдържат информация за специфичната за проекта конфигурация.
- .mvn / extension.xml файл
- .mvn / maven.config файл
- .mvn / jvm.config файл
Конфигурирането на Maven се извършва на нивата, изброени по-долу:
- Инсталация: Това се побира по време на инсталирането на Maven.
- Проект: Това е статичното, поддържано във файла pom.xml.
- Потребител: Това е конфигурирано за конкретен потребител.
Конфигурацията на проекта се прилага към целия проект, докато останалите конфигурации (инсталация и потребител) се прилагат към средата, в която работим. Инсталационните и потребителските конфигурации не могат да бъдат добавени като част от споделените данни за проекта.
Конфигурация на локално хранилище
Местоположението на локалното хранилище може да бъде променено като част от конфигурацията на потребителя. По подразбиране местоположението е .m2 директория. Това се постига чрез xml кода по-долу.
path to the directory
Прокси конфигурация
Конфигурацията на прокси може да се поддържа в настройките.
Конфигурация за паралелно разрешаване на артефакти
Maven изтегля наведнъж максимум 5 артефакта от различни групи.
За да изтеглите два артефакта, трябва да посочим следната команда:
mvn -Dmaven.artifact.threads = 2 проверка
Разгръщане и конфигуриране на сигурността
Разделът описва хранилищата, които трябва да бъдат разположени в определен проект. Информация като потребителско име, парола и други параметри за сигурност не може да бъде поставена вътре в този проект. За да предоставим тази информация, трябва да ги добавим в картографирани към идентификатора на хранилището за внедряване в проекта.
Това се постига чрез xml кода по-долу.
testrepository test password
Профили Конфигурации
Хранилището на Maven може да бъде конфигурирано за въвеждане в профила. В даден момент може да има повече от един профил. В зависимост от изискването можем да запазим един активен профил, за да можем да превключим към различни среди.
Други незадължителни конфигурации
За да имаме специфична за околната среда конфигурация, която не е специфична за всеки проект, трябва да конфигурираме настройките.
Въпроси и отговори за интервю за sql server 2012 интервю
Maven съдържа файл с настройки, който присъства в началната директория на инсталацията или потребителя. Той се грижи за конфигурацията на някои от параметрите на околната среда, както е показано по-долу:
- Потребителско име и парола на сървъра
- Местоположение на мениджъра на хранилището
- HTTP прокси сървър
Конфигурации за сигурност
До Maven 2.1.0+ имаме възможност за криптиране на паролите във файла с настройки. Но трябва да изградим главна парола, преди да отидем за криптиране.
Плъгини Maven
Приставките Maven са неразделна част от рамката на Maven. Всеки плъгин се присвоява на определена задача.
Има два типа приставки, както е показано по-долу:
- Изграждане на приставки : Те се изпълняват по време на изграждането и трябва да бъдат описани под етикета за изграждане във файла pom.xml.
- Приставки за отчитане : Те се изпълняват по време на генериране на сайта и трябва да бъдат описани под маркера за отчитане във файла pom.xml.
Списъкът по-долу показва някои от основните плъгини на Maven:
Основни приставки | Изпълнени задачи |
---|---|
чисти | Почиства артефакти след компилацията. |
компилатор | Изходният код на Java е компилиран. |
разполагане | Артефактите на компилацията се разполагат в отдалеченото хранилище. |
Инсталирай | Артефактите за изграждане са инсталирани в локалното хранилище. |
верификатор | Използва се за тестове за интеграция. |
ресурси | Изходната директория получава копието на ресурсите за включване в Jar. |
сайт | Текущият сайт на проекта е генериран. |
верификатор | Използва се за тест за интеграция и проверява специфични условия. |
Някои от приставките на Maven Reporting са изброени по-долу:
Приставки за отчитане | Изпълнени задачи |
pmd | Генерира се PMD отчет. |
дневник на промените | Последните промени от SCM се генерират под формата на списък. |
промени | Генерира се отчет за проследяване на проблеми. |
чекстил | Генерира се отчет за чекстила. |
Javadoc | Генерира се Java doc за проекта. |
сигурен доклад | Резултатите от единични тестове се генерират под формата на отчет. |
linkcheck | Генерира се отчет за проверка на връзката за проектната документация. |
jxr | Генерира се препратка към източник. |
Често задавани въпроси
В # 1) По-добър ли е Maven от Gradle?
Отговор: Gradle използва постепенно и избягване на работа подход. Gradle следи входните и изходните задачи и изпълнява необходимите. Въпреки това, за по-малки проекти Maven все още е предпочитан, докато Gradle е подходящ за по-големи и сложни проекти.
В # 2) Защо Gradle е по-бърз от Maven?
Отговор: Gradle е много по-бърз от Maven поради подходите по-долу на Gradle.
- Използване на Gradle Daemon, който поддържа детайлите на сградата готови в паметта.
- Компилация по стъпка.
- Използване на build-cache, който получава артефактите от предишни компилации.
- Моделиране на зависимости по ефективен начин от Gradle с помощта на приставката Java.
В # 3) Какво е Maven Gradle?
Отговор: Gradle е инструмент за изграждане на автоматизация, който е разработен върху характеристиките на Apache Ant и Apache Maven. Той е с отворен код и работи на базиран на Groovy език, свързан с домейн. Той не се управлява от файл pom.xml, както се използва от Maven за проектните зависимости и конфигурации.
В # 4) Защо Maven е предпочитан?
Отговор:
Maven е предпочитан поради следните предимства:
- Централно хранилище за всички зависимости на проекта.
- Поддържа обща структура на папките в рамките на организациите.
- Може да се интегрира с инструменти за контрол на версиите като Git и инструмент за непрекъсната интеграция като Jenkins.
- Процесът на изграждане е направен по-опростен, лесен и еднакъв.
В # 5) Maven само за Java ли е?
Отговор: Maven е инструмент за управление и изграждане на проекти, който обикновено се използва за Java проекти. Въпреки това може да се използва за проекти, разработени в Ruby, C #, Scala и т.н.
В # 6) Защо Maven се използва в Eclipse?
Отговор: Eclipse IDE автоматично изтегля зависимостите и конфигурациите от хранилищата на Maven. Също така, създаването на нови проекти на Maven, поддръжката на съществуващия проект Maven и pom .xml може да се направи с помощта на Eclipse.
В # 7) Какъв език е Gradle?
Отговор: Gradle дава език, свързан с домейн, наричан още DSL за компилация. Този език е достъпен в Groovy и Kotlin.
c ++ rand между 0 и 1
В # 8) Какви са предимствата на Maven?
Maven има някои зависимости като следното:
- Централно хранилище за всички зависимости на проекта.
- Поддържа обща структура на папките в рамките на организациите.
- Може да се интегрира с инструменти за контрол на версиите като Git и инструмент за непрекъсната интеграция като Jenkins.
- Процесът на изграждане е направен по-опростен и лесен.
Заключение
Този урок обсъжда концепциите като Gradle срещу Maven, как да конвертирате Gradle в Maven и обратно, конфигурации на Maven и плъгини. Също така бяха проучени някои от основните команди на Maven и Gradle.
Що се отнася до приставките Maven, обсъдихме някои от приставките за докладване и основните Maven.
Тъй като Maven е гореща тема на пазара, е необходимо да се развие разбирането за темата и да се развият експертни познания по този инструмент.
=> Прочетете серията Easy Training за обучение.
Препоръчително четене
- Какво е Maven - Урок за Maven за начинаещи
- Как да създадете проект Gradle със селен
- Как да използвам Gradle за изграждане, тестване и внедряване на проекти
- Gatling Script & Създайте проект Gatling с помощта на Maven Archetype
- Интеграция на Maven с TestNg с помощта на приставката Maven Surefire
- Какво представляват POM (обектния модел на проекта) и pom.xml в Maven
- Конфигуриране на Maven с Eclipse Java IDE
- 31 най-често задавани въпроси и отговори на интервю за Maven