【Gradle 一】Gradle入门简介(Maven/Gradle比较、Gradle目录结构&常用命令)

1.maven与gradle的比较:

  1. 侧重点:同样作为项目构建工具,maven侧重于项目jar包管理,gradle侧重于项目的构建
  2. 构建性能:gradle远高于maven

2.maven目录结构:

  • target
    • classes
  • src
    • main
      • java
      • resources
    • test
      • java
      • resources
  • pom.xml

3.gradle目录结构:

  • build:封装编译后的字节码、打成的包[Jar/War]、测试报告等,对应maven中的target目录
  • gradle:封装包装器文件夹
    • wrapper
      • gradle-wrapper.jar
      • gradle-wrapper.properties
  • src
    • main
      • java
      • resources
    • test
      • java
      • resources
  • gradlew
  • gradlew.bat:包装器启动脚本
  • build.gradle:构建脚本,类似maven中的pom.xml
  • settings.gradle:设置文件,定义项目及子项目名称信息,和项目是一一对应关系

4.gradle常用命令:

  1. gradle clean:清空build目录
  2. gradle classes:编译src-main目录下的源代码和配置文件
  3. gradle test:编译src-test目录下的测试代码,生成测试报告
  4. gradle build:构建项目(编译-测试-打包)
  5. gradle build -x test:跳过测试构建

以上gradle命令均需要在含有build.gradle的目录执行

5.启动gradle初始化脚本:

gradle底层也是从maven仓库中下载jar包,有一些maven仓库在国外下载缓慢,可以通过启用init.gradle的方式,设置maven下载地址为国内镜像源。启动方式有以下几种:

  1. 将以.gradle结尾的文件放到 USER_HOME/.gradle/ 目录下
  2. 将以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下
  3. 将以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下

如果存在多种启动方式,会按照1-3序号依次执行gradle初始化脚本

6.gradle wrapper

gradle wrapper是对gradle的一层封装,用于解决实际开发中可能会遇到的不同项目需要不同版本gradle的问题:

  1. 对方电脑没有装gradle
  2. 对方电脑安装的gradle版本较低
  3. 有了gradle wrapper之后,如果本地不配置gradle,下载gradle项目后,使用项目自带的wrapper操作也可以

项目中的gradlew、gradlew.bat脚本用的就是wrapper中规定的gradle版本(在命令行中用gradle命令调用的是本地安装的gradle、gradlew调用的是wrapper中的gradle)

7.gradle-wrapper.properties文件解读

存储项目wrapper对应的gradle配置

  1. distributionBase:下载gradle压缩包解压后存储的主目录
  2. zipStoreBase:同distributionBase,存放zip文件
相关推荐
427724001 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦2 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个2 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
南宫生4 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
计算机毕设定制辅导-无忧学长5 小时前
Maven 基础环境搭建与配置(一)
java·maven
风与沙的较量丶6 小时前
Java中的局部变量和成员变量在内存中的位置
java·开发语言
m0_748251726 小时前
SpringBoot3 升级介绍
java
极客先躯7 小时前
说说高级java每日一道面试题-2025年2月13日-数据库篇-请说说 MySQL 数据库的锁 ?
java·数据库·mysql·数据库的锁·模式分·粒度分·属性分
程序员侠客行7 小时前
Spring事务原理 二
java·后端·spring