【问题】使用gradle依赖管理jar包的缓存问题

本文探讨了在使用Gradle项目管理时,模块B如何频繁遇到模块A快照包更新不及时的问题,分析了Gradle缓存机制并提供了强制刷新依赖、清除缓存的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题场景:

在项目中我们使用gradle作为依赖管理,开发的过程中在模块A调用模块B,经常发现自己模块快照包A-SNAPSHOT.jar·,打出来的包在B模块中拉取不到最新的代码,但是加压A模块的jar发现是刚刚改动最新的jar,B模块多拉取几次都是这样,就像有缓存一样,这是怎么回事呢?


知识补充

xx-SNAPSHOT.jar和xx-RELEASE.jar有什么区别呢?

  • SNAPSHOT——是快照的意思,形容当前版本在开发过程中,不稳定,容易变更,可以理解为是临时包
  • RELEASE——是发行的意思,代表当前这个是趋于稳定的版本,可以提供给第三方正常使用
  • SNAPSHOT对比RELEASE的jar来说,SNAPSHOT是一个可以重复打包的一个版本,就像平时我们开发功能逐渐完善成熟之后,最终形成RELEASE包才能发行给别人使用。

原因分析:

提示:gradle对比maven来说之所以build构建很快,每次开idea的时候会从gradle的环境变量配置的gradle目录下加载缓存,提升速度,例如windos系统的gradle/caches目录:

在这里插入图片描述


解决方案:

方法一:要依赖的build.gradle下加入强制刷新即可(推荐

gradle强制刷新依赖build.gradle增加配置

configurations.all {
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

方法二:命令行强制清除缓存 (备选)

gradle build --refresh-dependencies

方法三: 删除对应的gradle/caches文件(没事找事

在这里插入图片描述

### 如何在 IntelliJ IDEA 中通过 Gradle 构建 JAR 要在 IntelliJ IDEA 中构建一个可运行的 JAR 文件,可以通过配置 `build.gradle` 文件并执行相应的 Gradle 任务来实现。以下是具体方法: #### 配置 `build.gradle` 为了创建一个含依赖项的可运行 JAR 文件,在项目的 `build.gradle` 文件中添加以下内容[^1]: ```groovy plugins { id 'java' } jar { manifest { attributes( 'Main-Class': 'com.example.Main' // 替换为实际的主类路径 ) } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } ``` 上述代码片段定义了一个名为 `jar` 的任务,并设置了清单文件中的主类属性以及含了所有的运行时依赖。 #### 执行 Gradle Task 来生成 JAR 文件 完成以上设置之后,可以利用 Gradle 提供的任务命令行或者图形界面工具来进行打操作: - **使用命令行**: 可以打开终端窗口输入如下命令: ```bash ./gradlew clean build ``` 这条命令会清理旧版本编译产物(`clean`) 并重新构建项目 (`build`). 成功完成后会在 `build/libs/` 路径下找到最终生成好的 `.jar` 文件. - **IDE内置支持**: 如果您更倾向于GUI方式,则可以在IntelliJ IDEA右侧边栏导航至Gradle视图面板, 展开当前工程节点下的生命周期选项卡点击`build`, 它同样也会触发整个流程直至产出目标制品位置相同的结果.[^4] 注意如果遇到缓存相关问题可能需要指定同的用户家目录参数解决潜在冲突情况可通过额外增加启动参数 `-g/--gradle-user-home` 自定义存储地址从而规避此类风险状况发生几率减少必要的麻烦步骤提升效率同时保持环境整洁有序状态良好运作下去长久维持下去持续贡献价值最大化效益最优化方向前进断探索未知领域开拓进取精神永驻心中永言弃勇往直前无惧挑战迎接未来无限可能性等待着我们去发现挖掘创造属于自己的辉煌成就篇章书写传奇故事传颂千古留芳百世名垂青史载入荣誉殿堂受世人敬仰膜拜学习效仿追随脚步迈向成功巅峰享受胜利喜悦时刻铭记奋斗历程珍惜每一分每一秒努力拼搏换来美好明天憧憬梦想成真那一天到来欢呼雀跃庆祝胜利成果分享全世界共同见证这一伟大历史瞬间永恒定格记忆深处成为生命中最宝贵财富之一永远珍藏心底深处温暖陪伴一生一世直到永远无穷尽为止……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农阿福

看明白的同学,别忘请阿福喝奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值