• IDEA 使用 Gralde 报错: Cause: zip END header not found


    开开心心的打开之前的 Gradle 微服务项目,然后点击IDEA 右侧小图标大象图标开始刷新项目,然后就报错了:

    在这里插入图片描述

    这个错误报的是真好,我竟然没看出什么意思,然后直接上百度Google经排查是因为下载的包有问题(不完整、有损坏之类的);这怎么可能会难住一个开发??? 直接 ClashX 开启,代理走起来,开开心心点击大象小图标,然后又是这。。。。。(复用上面的图,哈哈😆):

    在这里插入图片描述

    然后我去访问 Gradle 官网(https://services.gradle.org/distributions),没啥问题呀,手动也能下载下来,这就很尴尬;

    内心有点小崩溃,之前这项目可是嗖嗖的运行过,没有任何问题,好久不打开就来这。。。然后开始检查 Gradle 配置,结果发现了一个地方 Use Gradle form

    在这里插入图片描述

    然后开始在项目寻找这个 gradle-wrapper.properties 文件,结果还真的找到了。

    在这里插入图片描述

    本着探索精神,去 IDEA 官方文档中看了下 Use Gradle from 分别是什么作用,相应描述如下(文档地址):

    • 'gradle-wrapper.properties' file:这是使用 Gradle 包装器的推荐默认选项。(也是日常开发中推荐的方式)

      在这种情况下,您将 Gradle 版本的更新委托给 Gradle,并为构建获取自动 Gradle 下载。此选项还允许您使用精确的 Gradle 版本进行构建。 Gradle 版本保存在项目 gradle 目录下的 gradle-wrapper.properties 文件中,可帮助您消除任何 Gradle 版本问题。
    • 'wrapper' task in Gradle build script:选择此选项可根据包装器任务配置配置 Gradle 包装器。

      如果您更愿意在项目中控制使用哪个 Gradle 版本,这可能会很方便(比如在子模块混用不同版本的 Gradle)。

      如果您使用默认的 Gradle 包装器选项(gradle-wrapper.properties' file),然后切换到 Gradle 包装器任务配置,您在任务中所做的更改会在项目导入期间自动更新。
    • Specified location:如果要手动下载和使用特定 Gradle 版本,请选择此选项。

      指定您的 Gradle 安装位置和 JVM,当您导入指定的 Gradle 项目并执行其任务时,IntelliJ IDEA 将在该 JVM 下运行 Gradle。

    敲黑板:虽然有三种方式,但是还是推荐使用第一种,毕竟别人 clone 下代码直接自动下载相应的 Gradle 挺省事的;第二种的话也可以,与第一种类似,写在 gradle 脚本文件中;第三种的话临时开发用可以,就非常适合别人都好好的,就自己电脑有问题的情况,哈哈(气不气)。

    言归正传,当找到这个文件后,发现这个项目的配置地址已经失效了,用的是阿里云代码托管的一个仓库,然后我登录进去一看这个仓库不知道被谁删了,着实有点坑了;然后换为 Gradle 官方提供的地址,开开心心的点击大象刷新按钮,成功搞定,继续美滋滋的写 Bug 去。

    # 原文件
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    distributionUrl=https\://code.aliyun.com/kar/gradle-all-zip-6.8.x/raw/master/gradle-6.8-all.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    # 修改后
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【注】

    • 如果官方的不可用,可以选择国内提供的 Gradle 地址,但是一般使用 VPN 之后没啥大问题。
    • 搞个私服地址,将所需的文件上传上去,在 gradle-wrapper.properties 文件中使用即可(配置 distributionUrl)。

    个人博客:Roc’s Blog

  • 相关阅读:
    【C++智能指针】智能指针的发展和循环引用的原理和解决
    Linux系列学习(二) - Vim编辑器的介绍及使用、文件编译的过程、Makefile工具、Gdb调试器
    Linux系统firewalld防火墙的进阶操作(日志保存 IP网段 ssh服务)
    MySQL的执行器是怎么工作的
    C++中的this指针
    Web前端:雇佣全栈开发者有哪些好处?
    C++学习之多继承
    Ai4science学习、教育和更多
    Ubuntu安装Anaconda 建立虚拟环境
    关于Mysql的count统计
  • 原文地址:https://blog.csdn.net/peng2hui1314/article/details/126899235