写在前面;
        使用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的更多相关文章

  1. gradle 打包springboot项目,找不到项目jar application.class

    如题:gradle 打包springboot项目,找不到项目jar入口main方法:application.class 检查:lib/目录下没有相应项目的jar包 用gradle命令行查看日志:gra ...

  2. gradle结合spring-boot生成可运行jar包,并打印日志

    1.用gradle把springboot项目打包成jar 1.1 build.gradle 中添加 buildscript { repositories { mavenLocal() maven { ...

  3. 用gradle把springboot项目打包成jar

    ``` 用gradle把springboot项目打包成jar ```### build.gradle 中添加 buildscript { repositories { mavenLocal() mav ...

  4. Gradle +HanLP +SpringBoot 构建关键词提取,摘要提取 。入门篇

    前段时间,领导要求出一个关键字提取的微服务,要求轻量级. 对于没写过微服务的一个小白来讲.有点赶鸭子上架,但是没办法,硬着头皮上也不能说不会啊. 首先了解下公司目前的架构体系,发现并不是分布式开发,只 ...

  5. Gradle系列之初识Gradle

    原文首发于微信公众号:躬行之(jzman-blog) 学习 Android 有一段时间了,开发中经常使用到 Gradle ,但是不知道 Gradle 构建项目的原理,计划花一点时间学习一下 Gradl ...

  6. spring-boot - demo

    当我发现把最初的一个demo整的面目全非的时候,突然想要找一个简单的demo做测试,发现与其在原来的上面该,还不如新建一个demo. 官方入门:http://projects.spring.io/sp ...

  7. 001-快速搭建Spring web应用【springboot 2.0.4】-gradle、springboot的启动过程分析、gradle多模块构建

    一.概述 学习<精通Spring MVC4>书籍笔记 二.笔记 1.快速构建Spring starter web项目几种方式 1>使用Spring Tool Suite生成Start ...

  8. gradle创建spring-boot项目

    刚来新公司,熟悉了公司项目搭建的框架,了解到了一种新的项目管理工具:gradle,从网上了解,据说比maven更加灵活化,于是便学习了一番.在此记录下来,一遍以后使用.gradle的安装就不说了,网上 ...

  9. idea 下gradle创建springboot 项目

    InterlijIdea 开发环境下创建基于springBoot的项目. 环境 1.jdk1.5以上 2.interlijidea 15 以上 步骤 1.File –>new –>Proj ...

随机推荐

  1. 实践:Linux下安装mysql8.0

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.下载mysql8.0安装包 1.在local创建mysql文件夹 cd /usr/local mkdir mysql cd mysql 2.使 ...

  2. Blazor 002 : 一种开历史倒车的UI描述语言 -- Razor

    Razor是一门相当怪异丑陋的标记语言,但在实际使用中却十分高效灵活.本文主要介绍了Razor是什么,以及Razor引擎的一些浅薄的背后机理. 写文章前我本想一口气把Razor的基本语法,以及Blaz ...

  3. Apache HTTPD 未知后缀解析漏洞

    环境搭建 https://blog.csdn.net/qq_36374896/article/details/84102101 该环境版本: PHP 7.x 最新版 Apache HTTPD 2.4. ...

  4. c# winform 窗体 对话框绑定的值如何填到主窗体问题

    这段代码放在主窗体中 private void txt_KeJiaAModel_DoubleClick(object sender, EventArgs e) { TimerEvent(); } // ...

  5. 浅谈systemd原理和应用

    多不说,直接上代码(可谓配置): [Unit] Description=demo app After=network-is-online.target [Service] Type=Simple Ex ...

  6. Java基础 (上)

    基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...

  7. 【bjdctf】 BJD hamburger competition

    是一个游戏 静态分析和动态分析都没思路 尝试查看运行时动态链接库 其中assembly-csharp.dll可能为实现游戏功能的动态链接库 .net逆向 Dnspy反编译 关键代码如上 Getflag ...

  8. thrift使用和源码分析

    1 前言 thrift的官方文档比较差,很多细节没有介绍清楚,比如require.optional和default字段的区别是什么,为什么字段前面要写序号等,带着这些疑问,我们需要阅读生成的源码来了解 ...

  9. java-关于getResourceAsStream

    1111class.getClassLoader().getResourceAsStream InputStream ips = testResource.class.getClassLoader() ...

  10. CPU架构:CPU架构详细介绍

    1 概述 CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU.目前市场上的CPU分类主要分有两大阵营,一个是intel.AMD为首的复杂指令集CPU,另一个是以IBM.A ...