当前位置: 首页 > news >正文

第十章:Gradle Wrapper

10.1 是什么?为什么要用?

Gradle Wrapper(gradlew)和你已经有的mvnw是同一个东西:

  • 项目自带指定版本的 Gradle,不依赖机器上安装的版本
  • 团队成员直接.\gradlew build就能用,不用提前安装 Gradle
  • CI/CD 服务器同样不需要预装 Gradle

结论:生产项目统一用.\gradlew,不要用全局的gradle


10.2 初始化 Wrapper(一次性操作)

在项目根目录执行(需要已安装全局 Gradle):

gradle wrapper--gradle-version 7.6.4--distribution-typebin

执行后生成四个文件,全部提交到 Git:

gradlew ← Linux/Mac 用 gradlew.bat ← Windows 用 gradle/wrapper/gradle-wrapper.jar ← Wrapper 核心 gradle/wrapper/gradle-wrapper.properties ← 版本配置

之后团队其他成员不需要安装 Gradle,直接用:

.\gradlew clean build-x test

10.3 gradle-wrapper.properties 说明

# gradle/wrapper/gradle-wrapper.properties distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists # 这行是核心:指定 Gradle 版本 distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists

国内网络慢?换腾讯云镜像:

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.6.4-bin.zip

10.4 升级 Gradle 版本

# 升级到指定版本.\gradlew wrapper--gradle-version 8.5# 升级后把修改提交到 Gitgit add gradle/wrapper/gradle-wrapper.properties git commit-m"chore: upgrade Gradle to 8.5"

10.5 gradle.properties 性能配置

在项目根目录新建gradle.properties,加上这几行,构建会快很多:

# gradle.properties # JVM 内存(大项目必加,默认内存太小) org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 # 守护进程(默认开,显式声明) org.gradle.daemon=true # 并行构建(多模块项目有效) org.gradle.parallel=true # 构建缓存(clean 后也能利用缓存) org.gradle.caching=true

10.6 本地 Gradle 缓存位置

首次运行.\gradlew会自动下载 Gradle 到:

~/.gradle/wrapper/dists/gradle-7.6.4-bin/ ← Gradle 本体 ~/.gradle/caches/ ← 依赖缓存

下载一次之后,同版本的其他项目不会重复下载。

➡️ 下一章:构建提速

http://www.jsqmd.com/news/1148316/

相关文章:

  • 中国车牌生成器:高效自动化车牌数据生成技术实现指南
  • 研究生论文降AI全流程:从初稿到盲审通过4.8元工具组合完整操作指南
  • Next.js DApp 国际化路由:多语言链上术语库与动态内容切换
  • PyTorch混合精度训练完整配置:从AMP初始化到梯度缩放故障排查
  • “轴承制造的精度革命,不只靠一台机床,而是一整套从车削到磨削的‘精密闭环’。”
  • 终极清理指南:如何用MyComputerManager彻底删除Windows此电脑中的顽固图标
  • Zotero SciHub插件技术深度解析:学术文献自动获取的高效方案
  • Layerdivider:三步实现智能图像分层的终极解决方案
  • 3分钟解锁B站缓存视频:m4s转MP4完整指南
  • 终极指南:如何通过defender-control实现Windows Defender永久禁用与精细控制
  • 原来专业高铁标识有这么多门道,到底哪家好?
  • 相机成像模型 EMVA1288 解析:从辐射亮度 L 到像素灰度值的 4 个关键参数
  • Poppins字体终极指南:如何用免费几何字体解决多语言设计难题?
  • PowerToys:重新定义Windows生产力的瑞士军刀
  • TPD2015FN智能功率开关在工业负载控制中的应用
  • Starlight:基于 Astro 的文档网站框架,8.7K Star
  • 音乐文件被平台锁定了怎么办?这款免费工具让你真正拥有音乐
  • 高效判断回文链表的3种解法
  • BPF安全监控:能力、配置与策略实践
  • 模型推理成本可视化:从Token消耗到预算告警的监控体系
  • 2026年选F1级耐火桥架,专业公司保障安全无忧
  • 数字 IC 求职加分项:10 节课吃透大厂必考 Verilog 全考点
  • 【SkyWalking从入门到精通】第19篇:用SkyWalking提取关键路径:找到拖慢全军的瓶颈链路
  • 鸿蒙原生 ArkTS 弹窗布局深度解析:AlertDialog 与 CustomDialog 全场景对比实战
  • From descent to touchdown 全程下降着陆 / 从再入到稳稳落地
  • 小型大语言模型舍弃68%RAG上下文,保留96%召回率并降低查询成本三分之一
  • 杰理之两路PDMMIC上传PC的参考【篇】
  • 零基础用AI建站工具做网站的极速上手教程(可照做)
  • TB9051FTG与STM32实现直流电机静音控制方案
  • System Rules:给 java.lang.System 写测试不再抓瞎