初识gradle, idea+springboot Demo
写在前面;
使用maven管理写过几个springboot的系统, 此篇博客纯属记录整理学习的过程.
另外, 源码分享地址在最后.
Java: 1.8.0_281
tomcat: 1.8
IDE: IntelliJ IDEA 2021.3.2(Ultimate Edition)
gradle: 目前(2022-04-08 17:05:31)官网最新是7.4.2, 但是我用的不是(后面解释)
系统: win10(win11也有测试)
编写md工具: MarkText v0.17.1
在开始之前先把maven的本地仓库共享给gradle在启动idea.
GRADLE_USER_HOME 不要拼错误了

1. idea创建gradle项目

1.2 填写如下图

1.3 点击Finish 创建项目

为什么会有上图中这种情况呢? 等各种进程跑完后我们来看项目根目录下的/gradle/wrapper/gradle-wrapper.properties文件

图中已经给出了默认gradle是7.1 这里的版本正好对应到上一张图中下载的版本.
那么下载的位置在那里呢? 其实图中也给出了,在wrapper/dists, 那父文件夹呢? 是你用户名下的.gradle 文件夹
这个位置可以在idea中进行设置, 可以更改到其他盘

在此回答开头介绍环境时候没有指定gradle版本的问题:
1. 很多教程里开头都是先去gradle官网下载压缩包,bin包也好,all包也好,
然后解压,配置环境变量GRADLE_HOME, 然后PATH中添加%GRADLE_HOME%\bin
2. 是因为之前的版本(应该是idea 20 版本之前)在创建gradle项目的最后
可以选择是使用默认gradle版本还是使用本地的, 也即在Finish之前还有一步
可以选择的页面.
3. 既然取消掉了创建时候选择本地版本, 应该是统一使用wrapper管理,
默认也是wrapper文件生效(创建成功后可以在设置中选择使用本地gradle版本)
4. 这样最别扭的就是可能在.gradle下会有很多安装包, 虽然.gradle可以换位置.
2. 添加依赖
使用springboot写一个简单的web接口, 以下依赖可以在 maven仓库 中进行搜索
2.1 配置仓库加载顺序和在项目中配置阿里源

2.2 全局阿里源
反复尝试过下面几种, 但是速度并没有将上图中注释放开的情况下速度快
(500k或1M, 配置的全局一直50多k)
参考:
2.3 添加 spring-boot-starter-web 依赖

注: 如果在添加环境变量GRADLE_USER_HOME(本地maven仓库共享给gradle)前启动的idea, 且你maven库中已经有了这个版本, 可能需要重启idea, 才会读取到本地maven库
gradle的jar包仓库默认在 .gradle\caches\modules-2\files-2.1\ 中
2.4 另外一种写法导入 hutool

implementation是默认的导入方式, 还有其他的导入方式(如:只在测试时候生效, 只运行时候生效等等)未做深究.
3 写一个简单的web接口
3.1 创建启动器
在src/main/java下创建com.demo.DemoApplication类文件
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
// idea自启动
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
// 设置时区
@PostConstruct
void setDefaultTimezone() {
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
}
}
3.2 创建接口
随便写的接口, 这里就没有接数据库, 也不写yml文件了(接口默认8080)
@RestController
@RequestMapping("/demo")
public class TestController {
@RequestMapping("/time")
public String time() {
return DateUtil.now();
}
}
4 运行测试接口
4.1 运行

4.2 测试接口
浏览器输入 localhost:8080/demo/time

5 打war包
5.1 默认是打jar包

5.2 修改java为war, 然后ctrl shift o

5.3 clean 一下 然后双击 war
记得将项目停止了.

war包的位置在项目根目录下 /build/libs/gradle-demo-1.0-SNAPSHOT.war
那么如何去掉后面的版本号呢? 在build.gradle内添加以下代码重新打包即可.
war {
archiveName("demo.war")
}
5.4 打开本地tomcat服务器, 将war包放入webapps下

可以看到已经运行成功. 记得将项目停止了.
5.5 浏览器测试
浏览器输入 localhost:8080/demo/demo/time

其中第一个demo是项目名(war包名称)
6 结束
至此gradle已经完成了, 其他扩展知识点可以跟着去学习
1. groovy语法(.gradle后缀名的文件)
2. gradle创建子项目(多模块或微服务需要的内容)
学习gradle入门以来, 确实感觉到比maven的pom管理jar包方式会方便很多, 尤其显示的行数会少很多. 至于其他的区别, 已经gradle让人有爱又恨的地方就去网上了解吧, 很有意思.
源码: 初识gradle
初识gradle, idea+springboot Demo的更多相关文章
- gradle 打包springboot项目,找不到项目jar application.class
如题:gradle 打包springboot项目,找不到项目jar入口main方法:application.class 检查:lib/目录下没有相应项目的jar包 用gradle命令行查看日志:gra ...
- gradle结合spring-boot生成可运行jar包,并打印日志
1.用gradle把springboot项目打包成jar 1.1 build.gradle 中添加 buildscript { repositories { mavenLocal() maven { ...
- 用gradle把springboot项目打包成jar
``` 用gradle把springboot项目打包成jar ```### build.gradle 中添加 buildscript { repositories { mavenLocal() mav ...
- Gradle +HanLP +SpringBoot 构建关键词提取,摘要提取 。入门篇
前段时间,领导要求出一个关键字提取的微服务,要求轻量级. 对于没写过微服务的一个小白来讲.有点赶鸭子上架,但是没办法,硬着头皮上也不能说不会啊. 首先了解下公司目前的架构体系,发现并不是分布式开发,只 ...
- Gradle系列之初识Gradle
原文首发于微信公众号:躬行之(jzman-blog) 学习 Android 有一段时间了,开发中经常使用到 Gradle ,但是不知道 Gradle 构建项目的原理,计划花一点时间学习一下 Gradl ...
- spring-boot - demo
当我发现把最初的一个demo整的面目全非的时候,突然想要找一个简单的demo做测试,发现与其在原来的上面该,还不如新建一个demo. 官方入门:http://projects.spring.io/sp ...
- 001-快速搭建Spring web应用【springboot 2.0.4】-gradle、springboot的启动过程分析、gradle多模块构建
一.概述 学习<精通Spring MVC4>书籍笔记 二.笔记 1.快速构建Spring starter web项目几种方式 1>使用Spring Tool Suite生成Start ...
- gradle创建spring-boot项目
刚来新公司,熟悉了公司项目搭建的框架,了解到了一种新的项目管理工具:gradle,从网上了解,据说比maven更加灵活化,于是便学习了一番.在此记录下来,一遍以后使用.gradle的安装就不说了,网上 ...
- idea 下gradle创建springboot 项目
InterlijIdea 开发环境下创建基于springBoot的项目. 环境 1.jdk1.5以上 2.interlijidea 15 以上 步骤 1.File –>new –>Proj ...
随机推荐
- mybatis的几种like查询
oracle数据库: Java代码 SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 Java代码 SELECT * FROM ...
- source insight新建工程
1.打开Source Insight.如果已经打开过项目,则选择Project->Close Project.然后点击Project->New Project: 2.在弹出界面填入项目名 ...
- ssh端口转发学习笔记
ssh端口转发学习笔记 ssh命令参数介绍 -C 压缩数据传输 -f 将 ssh 转到后台运行,即认证之后,ssh 自动以后台运行.不在输出信息 -n 将 stdio 重定向到 /dev/null,与 ...
- 分治FFT/NTT
粘板子: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; t ...
- Java基础 (上)
基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...
- python 常用模块函数使用
1.collections模块在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict ...
- spring-注解驱动模式
spring web装配原理: /** * WebApplicationInitializer Spring MVC 提供接口. * * Spring中的web自动配置,也是可以, */ /** * ...
- 名词解析-SOA
什么是SOA SOA全英文是Service-Oriented Architecture,中文意思是中文面向服务编程,是一种思想,一种方法论,一种分布式的服务架构 SOA的作用场景 SOA解决多服务凌乱 ...
- 本地连接MySQL云服务器步骤与解决方案
云服务器:aliyun MySQL 版本:mysql8 第一步首先,检查云服务器的 网络与安全 -> 安全组 是否开放了(MySQL)3306端口 第二步,登陆云服务器上的MySQL,检查需要远 ...
- (转载)JSON对象使用变量作为键名
转载链接:https://blog.csdn.net/lihefei_coder/article/details/82499520 //第一种方式 var key = 'name'; var json ...