Gradle构建SpringBoot单模块项目
1.SpringBoot自定义cron表达式注册定时任务2.MongoDB + SpringBoot 的基础CRUD、聚合查询3.SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息4.SpringBoot获取Bean的工具类5.Gradle8.4构建SpringBoot多模块项目
6.Gradle构建SpringBoot单模块项目
7.Java根据URL截图的4种方式8.SpringBoot序列化、反序列化空字符串为null的三种方式9.SpringBoot使用模版导出Word文件:poi-tl10.EasyExcel-读取多个sheet的方法11.SpringBoot将数据库中的数据导入到xml文件中
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配置文件、启动类见【Ⅰ、二】
Ⅲ、多模块项目
合集:
SpringBoot的Demo
分类:
SpringBoot
, Gradle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)