# gradle-demo **Repository Path**: codorld/gradle-demo ## Basic Information - **Project Name**: gradle-demo - **Description**: 初识gradle - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-09 - **Last Updated**: 2022-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 写在前面;         使用maven管理写过几个springboot的系统, 此篇博客纯属记录整理学习的过程. 另外, 源码分享地址在最后. ```context 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** 不要拼错误了 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-56-53-image.png) ### 1. idea创建gradle项目 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-15-01-image.png) #### 1.2 填写如下图 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-17-25-image.png) #### 1.3 点击Finish 创建项目 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-21-51-image.png) 为什么会有上图中这种情况呢? 等各种进程跑完后我们来看项目根目录下的/gradle/wrapper/gradle-wrapper.properties文件 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-24-55-image.png) 图中已经给出了默认gradle是7.1 这里的版本正好对应到上一张图中下载的版本. 那么下载的位置在那里呢? 其实图中也给出了,在wrapper/dists, 那父文件夹呢? 是你用户名下的.gradle 文件夹 这个位置可以在idea中进行设置, 可以更改到其他盘 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-17-29-15-image.png) 在此回答开头介绍环境时候没有指定gradle版本的问题: ```context 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仓库](https://mvnrepository.com/) 中进行搜索 #### 2.1 配置仓库加载顺序和在项目中配置阿里源 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-18-04-47-image.png) #### 2.2 全局阿里源 反复尝试过下面几种, 但是速度并没有将上图中注释放开的情况下速度快 (500k或1M, 配置的全局一直50多k) 参考: - [gradle配置国内阿里源](https://blog.csdn.net/weixin_38883338/article/details/107285829) - [将gradle镜像源改为阿里源 - 简书](https://www.jianshu.com/p/c7c23b67ebe0) - [Idea Gradle配置阿里源](https://blog.csdn.net/WGYHAPPY/article/details/117933187) - [Gradle配置阿里云镜像 ](https://victorfengming.gitee.io/develop/gradle/) #### 2.3 添加 spring-boot-starter-web 依赖 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-18-13-37-image.png) 注: 如果在添加环境变量**GRADLE_USER_HOME**(本地maven仓库共享给gradle)前启动的idea, 且你maven库中已经有了这个版本, 可能需要重启idea, 才会读取到本地maven库 gradle的jar包仓库默认在 **.gradle\caches\modules-2\files-2.1**\ 中 #### 2.4 另外一种写法导入 hutool ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-08-18-17-24-image.png) implementation是默认的导入方式, 还有其他的导入方式(如:只在测试时候生效, 只运行时候生效等等)未做深究. ### 3 写一个简单的web接口 #### 3.1 创建启动器 在src/main/java下创建com.demo.DemoApplication类文件 ```java @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) ```java @RestController @RequestMapping("/demo") public class TestController { @RequestMapping("/time") public String time() { return DateUtil.now(); } } ``` ### 4 运行测试接口 #### 4.1 运行 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-11-49-image.png) #### 4.2 测试接口 浏览器输入 localhost:8080/demo/time ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-13-19-image.png) ### 5 打war包 #### 5.1 默认是打jar包 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-14-30-image.png) #### 5.2 修改java为war, 然后ctrl shift o ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-15-36-image.png) #### 5.3 clean 一下 然后双击 war 记得将项目停止了. ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-19-52-image.png) war包的位置在项目根目录下 /build/libs/gradle-demo-1.0-SNAPSHOT.war 那么如何去掉后面的版本号呢? 在build.gradle内添加以下代码重新打包即可. ```context war { archiveName("demo.war") } ``` #### 5.4 打开本地tomcat服务器, 将war包放入webapps下 ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-25-45-image.png) 可以看到已经运行成功. 记得将项目停止了. #### 5.5 浏览器测试 浏览器输入 localhost:8080/demo/demo/time ![](https://gitee.com/codorld/images/raw/master/gradle-demo/2022-04-09-16-27-17-image.png) 其中第一个demo是项目名(war包名称) ### 6 结束 至此gradle已经完成了, 其他扩展知识点可以跟着去学习 ```context 1. groovy语法(.gradle后缀名的文件) 2. gradle创建子项目(多模块或微服务需要的内容) ``` 学习gradle入门以来, 确实感觉到比maven的pom管理jar包方式会方便很多, 尤其显示的行数会少很多. 至于其他的区别, 已经gradle让人有爱又恨的地方就去网上了解吧, 很有意思. 源码: [初识gradle](https://gitee.com/codorld/gradle-demo)