Gradle官方介绍是Build Anything, Automate Everything,Deliver Faster,即构建任何项目,自动化,构建快。
Gradle VS Maven
这是官方跟Maven构建的比较视频
![640?wx_fmt=gif](https://mmbiz.qpic.cn/mmbiz_gif/ibUFbczATiaHbyYCtHZjRKda7qciaR7iaG6JTUoUFk7Irib6Fiazzw4NwUDnqmHbvvunZSSAOuMGTffD3ibsZxOHiaezIA/640?wx_fmt=gif)
可以明显看到Gradle速度快,显示内容也比较清爽
项目实例
IDEA创建初始项目
so easy..
copy 两个项目,目录结构是这样,这里用1-5标识Gradle配置文件
![640?wx_fmt=png](https://mmbiz.qpic.cn/mmbiz_png/ibUFbczATiaHbyYCtHZjRKda7qciaR7iaG6JL2ChBZfWJDj6SMDvrGPlpv4ukzrgSBqoNdvdzODJxibND2RKCmmGVmg/640?wx_fmt=png)
配置文件详解
1. settings.gradle
/**
* rootProject.name 项目名称
* include 模块名称
*/
rootProject.name = 'micro-service-framework'
include 'framework-base'
include 'framework-web'
include 'framework-redis'
2. build.gradle
这个相当于maven中的父maven配置
buildscript {
ext {
//spring boot 版本
bootVersion = '2.0.6.RELEASE'
}
//私服地址,这个地址适用于gradle自身,比如删除,下面的springboot插件就会找不到
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
//springboot gradle插件配置
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${bootVersion}")
}
}
allprojects {
//导入使用的插件
apply plugin: 'java'
apply plugin: 'maven'
//如果导入该插件,你需要指定main class,否则不能打包
//apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
//这个插件用于发布jar包到私服
apply plugin: 'maven-publish'
//jdk编译版本
sourceCompatibility = 1.8
//jar包的group ,version配置
group 'net.178le.micro'
version '0.0.1-SNAPSHOT'
//私服地址,
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
/**
* 导入了springboot,spring cloud的pom文件,能够免去自己管理版本
* PS: 在Spring官网指导上面有另外一种配置,那种配置需要配置main class,一会说明
*/
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-starter-parent:${bootVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
}
}
//私服发布配置
publishing {
publications {
maven(MavenPublication) {
//指定group/artifact/version信息,可以不填。默认使用项目group/name/version作为groupId/artifactId/version
groupId = project.group
artifactId = project.name
version = project.version
//如果是war包填写components.web,如果是jar包填写components.java
from components.java
//配置上传源码
artifact sourceJar {
classifier "src"
}
}
}
repositories {
maven {
def releasesUrl = "http://你的私服ip:8081/repository/maven-releases/"
def snapshotsUrl = "http://你的私服ip:8081/repository/maven-snapshots/"
url = version.endsWith('SNAPSHOT') ? snapshotsUrl : releasesUrl
credentials {
username = 'admin'
password = 'admin123'
}
}
}
}
}
//这里的配置对子项目生效
subprojects {
dependencies {
testCompile("org.springframework.boot:spring-boot-starter-test")
compile("com.google.guava:guava:28.0-jre")
}
}
//打包源码
task sourceJar(type: Jar) {
from sourceSets.main.allJava
}
maven publish使用
在task -> publishing 中有如下几个命令
我认为使用这两个命令就足够了
publishMavenPublicationToMavenLocal 发布项目到本地仓库
publishMavenPublicationToMavenRepository 发布项目到私服
PS:使用apply plugin: 'org.springframework.boot' build必须要指定main class
23:26:17: Executing task 'build'...
> Task :framework-base:compileJava NO-SOURCE
> Task :framework-base:processResources NO-SOURCE
> Task :framework-base:classes UP-TO-DATE
> Task :framework-base:jar SKIPPED
> Task :framework-redis:compileJava UP-TO-DATE
> Task :framework-redis:processResources NO-SOURCE
> Task :framework-redis:classes UP-TO-DATE
> Task :framework-redis:jar SKIPPED
> Task :framework-web:compileJava UP-TO-DATE
> Task :framework-web:processResources NO-SOURCE
> Task :framework-web:classes UP-TO-DATE
> Task :framework-web:bootJar FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':framework-web:bootJar'.
> Main class name has not been configured and it could not be resolved
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.10.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 1s
3 actionable tasks: 1 executed, 2 up-to-date
Main class name has not been configured and it could not be resolved
23:26:18: Task execution finished 'build'.
framework-web 项目 3. build.gradle
dependencies {
//依赖framework-redis项目
compile project(':framework-redis')
//不需要写版本
compile('org.springframework.boot:spring-boot-starter-web')
//不需要写版本
compile('org.springframework.cloud:spring-cloud-starter-openfeign')
}
framework-redis 项目 4. build.gradle
dependencies {
//依赖framework-base
compile project(':framework-base')
compile('org.springframework.boot:spring-boot-starter-data-redis')
}
framework-base 5. build.gradle
//做为演示没有引入任何jar包
dependencies {
}
![640?wx_fmt=png](https://mmbiz.qpic.cn/mmbiz_png/ibUFbczATiaHZ5ibxowLQBNpENJdN2cmvmWj5NyA8PYXPmsfhV5BXiaQKU5Lkqia23KqKpnYMOVpDKhSHJ51ibEXP2ug/640?wx_fmt=png)
相关推荐
使用springboot+kotlin+ktor+gradle搭建多模块项目例子,该项目整合MybatisPlus做为数据库框架,可搭配文章‘SpringBoot整合Ktor2与MybatisPlus’ 与 ‘ktor 2.0的使用教程之实现log日志和jwt封装与异常处理’一起...
gradle构建多模块的微服务架构,配置超简单简洁,基于springboot、shardingsphere、mybatisplus、HikariCp构建的web微服务。可以直接运行,在此基础上构建多模块聚合形式的业务系统。
创建Spring Boot多模块项目的第一步是在Idea中创建一个新的Maven或Gradle项目。以Maven为例,我们需要在`pom.xml`中定义父项目(Parent Project)和子项目(Child Projects)。父项目主要负责管理所有子项目的版本...
7. **持续集成和部署**:配置Gradle构建脚本,以便与CI/CD工具如Jenkins、GitLab CI/CD等配合,实现自动化构建、测试和部署。 8. **版本控制**:将整个项目放入版本控制系统(如Git),便于团队协作和版本管理。 ...
在这里选择Gradle作为构建工具,IDEA会自动为你生成基本的Gradle构建脚本`build.gradle`。 5. **配置Gradle** `build.gradle`文件是Gradle的配置文件,其中包含了项目的构建规则。Spring Boot Starter会帮你配置...
在这里,我们有一个使用IDEA搭建的、基于Gradle构建系统和Spring Boot 2的项目,其中包含了增删改查的基本示例。 首先,让我们深入了解一下Spring Boot 2的关键特性: 1. 自动配置:Spring Boot通过“@...
主要介绍了springboot+gradle 构建多模块项目的步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在本项目中,我们主要探讨的是如何使用Gradle构建一个基于SpringBoot的应用,并结合Mybatis进行数据持久化处理,同时引入PageHelper插件以实现高效便捷的分页功能。此外,我们还将关注如何配置热部署,以便在开发...
它使用Groovy或Kotlin作为构建脚本语言,提供了灵活的依赖管理和插件系统,使得项目构建更加模块化和可定制化。在本项目中,Gradle用于管理项目依赖、执行构建任务和打包应用程序。 接下来是SpringBoot,它是Spring...
本教程将深入探讨如何设计和实现一个基于SpringBoot的多模块项目。 一、SpringBoot基础知识 1. SpringBoot的核心特性包括自动配置、起步依赖和内嵌Web服务器。自动配置是SpringBoot的一大亮点,它通过`@SpringBoot...
Gradle支持多项目构建,可以通过以下步骤创建多模块SpringBoot项目: 1. **创建主项目** 主项目通常包含所有子项目的配置信息,`settings.gradle`文件列出所有子模块: ```groovy include 'module1', 'module2' ...
在新项目中,我们通常会使用Spring Initializr来初始化一个带有Gradle构建的SpringBoot项目。Gradle的构建脚本(build.gradle)将定义项目依赖,如SpringBoot的starter依赖、应用的自定义模块等。 接下来,"2.配置...
7. **Maven或Gradle**: 为了管理和构建多模块项目,开发者通常会使用Maven或Gradle。这两个工具可以帮助管理项目依赖、构建工件并自动化构建流程。通过它们的多模块配置,可以确保所有子模块协同工作。 8. **...
**基于Gradle构建的项目详解** Gradle是一种现代的、强大的构建自动化工具,它以其灵活性、性能优化和高度可扩展性赢得了开发者的喜爱。相比于传统的Maven,Gradle提供了更丰富的配置选项,允许开发者根据项目的...
在Spring Boot应用中,多模块架构常常用于组织复杂的项目结构,将不同的功能模块进行分离,以便于管理和维护。Service层是业务逻辑的核心,对其进行单元测试是确保代码质量、提高开发效率的重要步骤。本文将深入探讨...
在本示例"SpringBoot多模块例子-v1.0"中,我们看到的是一个采用SpringBoot构建的多模块项目,旨在提供一种有序、可维护的开发方式。 首先,我们要理解什么是多模块项目。在大型项目中,为了提高代码的可读性、可...
2. **build.gradle**:这是Gradle构建脚本,定义了项目的依赖、插件、任务等。对于`server`项目,我们需要添加Spring Boot的相关依赖,如`spring-boot-starter-web`。对于`ui`项目,我们需要添加处理Vue.js的插件,...
本项目“SpringBoot-Gradle-Demo”将这两者完美融合,旨在帮助开发者理解如何使用Gradle构建SpringBoot项目,并展示模块化的最佳实践。 一、SpringBoot简介 SpringBoot是Spring框架的延伸,旨在简化Spring应用的...
本项目结合了SpringBoot、Gradle和MyBatis,旨在实现多数据源的动态配置,这对于处理多个数据库或者分库分表的场景尤其有用。以下是对这个项目的详细解析: **SpringBoot** SpringBoot是由Pivotal团队提供的全新...
在Maven或Gradle项目中,子模块会继承父模块的依赖和配置,这样可以确保所有子模块之间的一致性和减少重复的工作。在本例中,`parent`模块可能包含了Spring Boot的核心依赖和其他公共库的版本信息。 2. **实体模块...