Gradle构建SpringBoot单模块项目
Gradle构建SpringBoot单模块项目
- 方式Ⅰ:未基于:Gradle Wrapper
- 方式Ⅱ:(推荐使用)Gradle Wrapper【可以不安装Gradle、统一Gradle的版本】——包括Maven也是一样的可以用Wrapper的方式
- 版本:JDK8 + SpringBoot2.7.15 + Gradle8.x
- 本篇主要讲实现。Gradle与Maven的区别自己去看
Ⅰ、普通方式(基础)
- 别用这种方式,gradle的版本也低
一、需要先安装Gradle
需要配置Gradle的环境变量,如同Maven
自己搜,也许后面我会出
二、构建项目、导包
1、build.gradle -构建配置+导包
主要插件:'io.spring.dependency-management' (Gradle 5.x 之前版本)
- dependency-management会做自动做一件核心事情:spring boot grale插件会自动调用dependency-management引入
org.springframework.boot:spring-boot-dependencies:SPRING_BOOT_VERSION,- 其中
SPRING_BOOT_VERSION也是spring boot gradle插件的版本,spring-boot-dependencies中维护了spring boot生态下的bom数据。
- 其中
- Gradle 5.x开始自动提供bom功能,因此可以不用引入spring 的dependency management插件,直接导包
- dependency-management会做自动做一件核心事情:spring boot grale插件会自动调用dependency-management引入
主要插件:'org.springframework.boot'
//以下两种构件方式都可以
// 构建方式一:
/*buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/public/' }
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
}
}
apply plugin: 'java' //gradle创建的java项目
apply plugin: 'idea' //idea插件:生成IDE工程文件,然后在IDE中直接打开这样的工程文件。这样的好处一是非常简单,二是所有人都使用了相同的IDE配置。
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' //类似 Maven的 dependencyManagement方式实现依赖管理 的插件*/
// 构建方式二:
plugins{
id 'java'
id 'idea'
id 'org.springframework.boot' version '2.0.5.RELEASE'
id 'io.spring.dependency-management' version "1.0.8.RELEASE"
}
//组、版本、jdk版本
group = 'com.zdhb'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
//仓库配置
repositories {
mavenLocal() //本地
maven { url 'https://maven.aliyun.com/repository/public/' } //阿里镜像
mavenCentral() //中央仓库
}
//导包
dependencies {
compile"org.springframework.boot:spring-boot-starter-web"
testCompile("org.springframework.boot:spring-boot-starter-test")
// compile "com.baomidou:mybatis-plus:2.2.0"
compile "com.microsoft.sqlserver:sqljdbc4:4.0"
compile "org.apache.velocity:velocity-engine-core:2.0"
compile "com.alibaba:druid:1.1.11"
//hutool工具类
compile "cn.hutool:hutool-all:5.0.7"
//lombok
compile "org.projectlombok:lombok:1.18.16"
//处理 JSON 数据包
compile "com.alibaba:fastjson:1.2.49"
compile "org.apache.commons:commons-lang3:3.5"
//compile "org.springframework:spring-web:5.0.9.RELEASE"
// compile "io.swagger:swagger-annotations:1.5.20"
compile "com.baomidou:mybatis-plus-boot-starter:2.2.0"
}
2、application.yml -配置文件
server:
port: 9004
配置数据库和mybatis plus后
server:
port: 9004
spring:
# 连接池配置
datasource:
url: jdbc:sqlserver://***:1433;database=site_card_input #zd_gms_cd数据库名 配置时间区
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver #数据库驱动
username: sa
password: ****
type: com.alibaba.druid.pool.DruidDataSource #使用druid连接池
#时间戳统一转换
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# 配置 mybatis-plus
mybatis-plus:
mapper-locations: classpath:com/****/sacs/mapper/*Mapper.xml #扫描xml文件
type-aliases-package: com.****.sacs.dto,com.zdhb.sacs.query #配置别名
3、启动类
- 记得扫描Mapper的组件 @MapperScan("com.zdhb.sacs.mapper")
@SpringBootApplication
@MapperScan("com.zdhb.sacs.mapper")
public class SiteAndCradServersApplication9004 {
public static void main(String[] args) {
SpringApplication.run(SiteAndCradServersApplication9004.class);
}
}
4、配置成功的标志,Gradle构建成功

Ⅱ、单模块项目
JDK8的最终版
其实jdk8+springboot的最终版是:2.7.16-SNAPSHOT。只是我导不进来,所以用了:2.7.15
Gradle Wapper:用于统一项目所使用的gradle版本,不用安装Gradle
直接使用idea构建gradle项目
springboot+jdk+gradle的版本:来自spring管网
https://docs.spring.io/spring-boot/docs/2.7.15/reference/html/getting-started.html#getting-started

一、说明
1、idea自己去新建Gradle的SpringBoot项目

2、compile导包方式被弃用
- 使用:implementation、api导包
在Gradle 8.x及以上的版本中,compile配置已被弃用,并且被以下两个配置所取代:
1. implementation:用于指定项目的主要依赖项,这些依赖项将被编译和打包到项目中。这是替代compile配置的推荐选项。
【关键词:被编译和打包、推荐选项、不共享到其他模块】
【重点:依赖无法被传递给子模块】
2. api:用于指定项目的公共API依赖项,这些依赖项将被编译、打包到项目中,并且对其他模块可见。这是替代compile配置的另一个选项,适用于需要在多个模块之间共享依赖项的情况。
【关键词:被编译和打包、公共依赖其他模块可见、多模块共享依赖】
【重点:依赖可以被传递给子模块】
二、gradle配置
- 可以不用管
- gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
三、项目配置
1、build.gradle
- 作用如同Maven的pom文件
- 配置springboot的版本,导包,配置仓库地址等等……
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.15'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.cc'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '8'
targetCompatibility = '8'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
//仓库配置
repositories {
//本地
mavenLocal()
//阿里仓库
maven { url 'https://maven.aliyun.com/repository/public/' }
//公司仓库。必须用:https。Gradle默认情况下不允许使用不安全的协议,以提高安全性。
maven { url 'https://****:****/repository/maven-public/' }
//中央仓库
mavenCentral()
}
//导包
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
//用于配置测试任务(test task)
tasks.named('test') {
//是一个测试任务的配置方法,它指定使用JUnit 5平台来运行测试
//通过使用useJUnitPlatform()配置方法,您可以确保您的测试任务使用JUnit 5来运行测试。
useJUnitPlatform()
}
// 配置gradle的版本。需要单独运行
wrapper {
//gradle的版本
gradleVersion = '8.4'
//版本类型:BIN、ALL(完全版,可以看gradle的代码)
distributionType = 'ALL'
}
2、settings.gradle
- 可以实现多模块配置,这里先不演示
rootProject.name = 'JavaPatterns'
3、SpringBoot配置文件、启动类见【Ⅰ、二】
Ⅲ、多模块项目
见第二篇我的文章:https://www.cnblogs.com/kakarotto-chen/p/17784126.html
参考:https://www.cnblogs.com/davenkin/p/gradle-spring-boot.html
Gradle构建SpringBoot单模块项目的更多相关文章
- 使用Gradle构建springboot多模块项目,并混合groovy开发
idea设置本地gradle 打包: build.gradle //声明gradle脚本自身需要使用的资源,优先执行 buildscript { ext { springBootVersion = ' ...
- Idea创建一个Springboot单模块项目
1.打开IDEA,创建新项目,选择Spring Initializr,选择SDK为你的java版本. 2.点击下一步,输入Artifact 3.点击下一步,选择web 4.finish 5.完成后id ...
- SSM003/构建Maven单模块项目(一)
一.环境准备 1.开发工具:IDEA 2.JDK版本:jdk1.8 3.Maven版本:apache-maven-3.2.5 4.数据库mysql. 二.基于Maven构建web项目 Step1:Fi ...
- SSM003/构建Maven单模块项目(二)
一.Controller基础代码(mooc) 1.UserController.java /** *springmvc1-2:返回jsp页面 * 请求URL: /user/getUserById?us ...
- 使用IDEA构建Spring-boot多模块项目配置流程
使用IDEA构建Spring-boot多模块项目配置流程 1.创建项目 点击Create New Project 在左侧选中Spring Initializer,保持默认配置,点击下一步. 在Grou ...
- Gradle构建SpringBoot并打包可运行的jar配置
使用Gradle构建项目,继承了Ant的灵活和Maven的生命周期管理,不再使用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁. 构建环境: jdk1.6以上,此处使用1.8 Gradle ...
- Java秒杀系统实战系列~构建SpringBoot多模块项目
摘要:本篇博文是“Java秒杀系统实战系列文章”的第二篇,主要分享介绍如何采用IDEA,基于SpringBoot+SpringMVC+Mybatis+分布式中间件构建一个多模块的项目,即“秒杀系统”! ...
- 使用Gradle构建多模块SpringBoot项目
使用Gradle构建多模块SpringBoot项目 本项目使用Gradle构建SpringBoot项目,将不同的业务进行不同的模块划分(不做微服务与分布式架构); - 编辑器:Intellij IDE ...
- 用Gradle构建Spring Boot项目
相比起Maven的XML配置方式,Gradle提供了一套简明的DSL用于构建Java项目,使我们就像编写程序一样编写项目构建脚本.本文将从无到有创建一个用Gradle构建的Spring Boot项目, ...
- linux服务器中Jenkins集成git、Gradle持续构建Springboot项目
Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动 ...
随机推荐
- 面试官:小伙子知道synchronized的优化过程吗?我:嘚吧嘚吧嘚,面试官:出去!
写在开头 面试官:小伙子,多线程中锁用过吗? 我:那是自然! 面试官:那你知道synchronized的优化吗? 我:synchronized作为重锁,开销大,在早期不被推荐使用,后期进行了优化,至于 ...
- Loto实践干货(9) 示波器测 晶振
我们用LOTO示波器的多个型号,带宽从20M到100M,分别测无源和有源晶振的情况.分别测试了12M,15M,24M,48M,80M晶振的波形.并分析了为什么我们经常测出晶振波形不是方波?为什么有时候 ...
- GIT版本控制学习博客
GIT版本控制学习博客 环境部署 下载git版本控制即可. 用户配置 (1)设置用户及地址 git config --global user.name "Username" git ...
- 【已解决】mybatis注解@Param失效,无法获取到值(org.apache.ibatis.binding.BindingException: Parameter 'policy' not found. Available parameters are [arg1, arg0, param1, param2])
案发现场: 传递的参数是一个实体类 PolicyDictionary 此时我无法拿到数据: 解决思路一(不推荐) 删去@Param注解,使用mybatis默认的参数顺序: 不使用@param注解传递多 ...
- OpenHarmony开发之MQTT讲解
相信MQTT这个名称大家都不陌生,物联网的开发必然会遇到MQTT相关知识的应用.那么什么是MQTT?它有什么特点?它能解决什么问题?它是如何工作的?OpenAtom OpenHarmony(以下简 ...
- [洛谷P3961,TJOI2013]黄金矿工题解
这无疑是一个分组背包问题,斜率是分组的依据,组内物品则是这个斜率下金块的价值与重量的前缀和. 发现很多人的都是用的double储存斜率,其实我们可以用分数的方法保存,这就需要一个gcd. 然后我们用m ...
- 将Map中对应的key和value赋值到对象中
BeanUtils位于import org.apache.commons.beanutils.BeanUtils包下 其使用方法: Map<String, Object> objectMa ...
- HMS Core助力同程旅行,打造更贴心的用户出行体验
作为中国在线旅行行业的创新者,同程旅行聚焦年轻.时尚.个性的消费群体,致力于为用户提供更便捷.聪明.安全的出行服务.近年来,同程旅行通过人工智能等创新科技的应用将平台原本的交易撮合角色转变为" ...
- 模拟SQLserver死锁现象
SQL Server死锁是指两个或多个事务相互等待对方持有的资源而无法继续执行的情况.当两个或多个事务都持有一些资源并且试图获取其他事务持有的资源时,可能会发生死锁.这种情况下,每个事务都在等待另一个 ...
- HarmonyOS—UI 开发性能提升的推荐方法
注:本文转载自 HarmonyOS 官网文档 开发者若使用低性能的代码实现功能场景可能不会影响应用的正常运行,但却会对应用的性能造成负面影响.本章节列举出了一些可提升性能的场景供开发者参考,以避免应用 ...