当前位置 : 主页 > 编程语言 > 其它开发 >

初识gradle, idea+springboot Demo

来源:互联网 收集:自由互联 发布时间:2022-05-30
写在前面; 使用maven管理写过几个springboot的系统, 此篇博客纯属记录整理学习的过程. 另外, 源码分享地址在最后. Java: 1.8.0_281tomcat: 1.8IDE: IntelliJ IDEA 2021.3.2(Ultimate Edition)gradle: 目前(2022-0

写在前面;
        使用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)

参考:

  • gradle配置国内阿里源

  • 将gradle镜像源改为阿里源 - 简书

  • Idea Gradle配置阿里源

  • Gradle配置阿里云镜像

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

网友评论