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

问题场景:

在项目中我们使用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目录:

【问题】使用gradle依赖管理jar包的缓存问题_第1张图片


解决方案:

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

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

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

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

gradle build --refresh-dependencies

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

【问题】使用gradle依赖管理jar包的缓存问题_第2张图片

你可能感兴趣的:(Java基础,gradle,jar,缓存)