Адрес фактического центра электронной коммерции SpringBoot (40k+star):GitHub.com/macro-positive/…
Резюме
Многие друзья используют Maven в качестве инструмента для разработки Web-приложений на Java. Как инструмент сборки, активно поддерживаемый Google, Gradle широко используется в разработке для Android и имеет тенденцию заменять Maven в Java Web. Действительно ли Gradle такой ароматный? Сегодня мы приходим, чтобы испытать один из них с моим проектом строительных лесов.mall-tiny
Например, посмотрите, работает ли Gradle!
Введение в Gradle
Gradle — гибкий и производительный инструмент автоматической сборки с открытым исходным кодом.Для написания скриптов сборки можно использовать Groovy или Kotlin DSL. От мобильной разработки до микросервисов, от небольших команд до крупных предприятий — Gradle повышает продуктивность разработчиков.
Gradle имеет следующие особенности:
- Широкие возможности настройки: Gradle использует настраиваемый, расширяемый способ моделирования и очень гибкий.
- Быстрые сборки: Gradle быстро завершает сборки, повторно используя выходные данные предыдущих выполнений, обрабатывая только измененные входные данные и выполняя задачи параллельно.
- Мощный: Gradle является официальным инструментом сборки для Android и поддерживает множество популярных языков и технологий.
Gradle опыт
Далее выложу свой проект строительных лесов
mall-tiny
От использования Maven до использования Gradle, испытайте использование Gradle.
Создать Gradle-проект
- В первую очередь необходимо скачать установочный пакет Gradle.Рекомендуется скачивать полную версию с исходным кодом (иначе в атрибуте Gradle не будет комментариев).Адрес для скачивания:gradle.org/releases/
- После завершения загрузки разархивируйте его, а затем создайте проект SpringBoot в IDEA;
- Выберите создание проекта Gradle;
- Затем выберите версию Gradle, которую мы загрузили ранее, и войдите в каталог, который вы распаковали;
- После создания проекта очень простая структура каталогов проекта Gradle выглядит следующим образом, следует отметить, что
build.gradle
иsettings.gradle
эти два файла.
Знакомство с плагином Gradle
во вновь созданномbuild.gradle
В файле мы можем найти следующие 3 плагина:
plugins {
id 'org.springframework.boot' version '2.3.0.RELEASE'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
org.springframework.boot
Плагин Gradle, официально предоставленный SpringBoot, удобен для использования SpringBoot путем измененияversion
Может контролировать используемую версию SpringBoot.
io.spring.dependency-management
Плагин Gradle (похожий на Maven), который обеспечивает управление версиями зависимостей.
Например, когда мы раньше использовали Maven для управления версией Druid, мы сначала<dependencyManagement>
Версия зависимости определяется в .
<dependencyManagement>
<dependencies>
<!--集成druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
</dependencies>
</dependencyManagement>
Тогда вам не нужно заполнять номер версии при введении зависимостей, преимущество этого в том, что вы можете унифицировать версии зависимостей.
<dependencies>
<!--集成druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
</dependencies>
В Gradle вы можете использовать это так, не правда ли, это намного проще!
dependencies {
implementation 'com.alibaba:druid-spring-boot-starter'
}
dependencyManagement {
dependencies {
dependency 'com.alibaba:druid-spring-boot-starter:1.1.10'
}
}
java
Плагин Java добавляет в проект общие функции, такие как компиляция Java, тестирование и т. д., и является основой для многих других плагинов Gradle для языка JVM.
Maven в Gradle
Преобразование проекта Maven в Gradle очень просто, просто введите
pom.xml
Зависимости вbuild.gradle
зависимости в .
- Например, зависимость Hutool написана на Maven так:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.7</version>
</dependency>
- Запись в Gradle выглядит так, и это можно сделать одной строкой:
dependencies {
implementation 'cn.hutool:hutool-all:4.5.7'
}
- Иногда Gradle загружает зависимости медленно, поэтому изменение URL-адреса на адрес репозитория Maven в Alibaba Cloud может ускорить загрузку;
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
mavenCentral()
}
- другой полный
build.gradle
, добавлены все зависимости;
plugins {
id 'org.springframework.boot' version '2.3.0.RELEASE'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.macro.mall.tiny'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.springframework.boot:spring-boot-starter-aop'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-configuration-processor'
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
implementation 'com.alibaba:druid-spring-boot-starter'
implementation 'mysql:mysql-connector-java'
implementation 'io.springfox:springfox-swagger2'
implementation 'io.springfox:springfox-swagger-ui'
implementation 'io.swagger:swagger-models'
implementation 'io.swagger:swagger-annotations'
implementation 'cn.hutool:hutool-all'
implementation 'io.jsonwebtoken:jjwt'
implementation 'com.baomidou:mybatis-plus-boot-starter'
implementation 'com.baomidou:mybatis-plus-generator'
implementation 'org.apache.velocity:velocity-engine-core'
}
dependencyManagement {
dependencies {
dependency 'com.alibaba:druid-spring-boot-starter:1.1.10'
dependency 'mysql:mysql-connector-java:8.0.16'
dependency 'io.springfox:springfox-swagger2:2.9.2'
dependency 'io.springfox:springfox-swagger-ui:2.9.2'
dependency 'io.swagger:swagger-models:1.6.0'
dependency 'io.swagger:swagger-annotations:1.6.0'
dependency 'cn.hutool:hutool-all:4.5.7'
dependency 'io.jsonwebtoken:jjwt:0.9.0'
dependency 'com.baomidou:mybatis-plus-boot-starter:3.3.2'
dependency 'com.baomidou:mybatis-plus-generator:3.3.2'
dependency 'org.apache.velocity:velocity-engine-core:2.2'
}
}
test {
useJUnitPlatform()
}
- В конце концов, все, что вам нужно сделать, это скопировать исходный код, и преобразование Gradle завершено.
Сравните Maven
Говорят, что Gradle строит быстро, да и сам официал говорит, что мы попробуем собрать проект после очистки, чтобы посмотреть, насколько он быстр!
- Сначала используйте предыдущий проект Maven, очистите его напрямую, затем упакуйте, упакуйте и соберите его;
- Вывод консоли выглядит следующим образом, отнимает много времени
32s
;
- Затем используйте текущий проект Gradle, который также упакован после очистки (команда bootjar используется в Gradle), упакован и собран;
- Вывод консоли выглядит следующим образом, отнимает много времени
15s
, более чем в два раза быстрее!
- Приведем еще одну официальную сравнительную таблицу: Gradle строит в два раза быстрее Maven, что вполне уместно!
Суммировать
Gradle, как официальный инструмент сборки, рекомендуемый Google, действительно хорош! Если вы можете писать скрипты на Groovy, это очень гибко в использовании, а синтаксис прост и быстр в построении!
использованная литература
Официальная документация Gradle:docs.gradle.org
Адрес исходного кода проекта
Эта статьяGitHubGitHub.com/macro-positive/…Записано, приветствую всех на Star!