You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多模块Gradle项目GitHub Action构建报错:找不到GradleWrapperMain类

Gradle Wrapper在GitHub Action中找不到主类org.gradle.wrapper.GradleWrapperMain

项目结构

rootproject
├── subproject1
│   └── src/main/java
├── subproject2
│   └── src/main/java
├── subproject3
│   └── src/main/java
│
├── build.gradle
├── gradlew
├── gradlew.bat
├── settings.gradle
└── gradle
    └── wrapper
        ├── gradle-wrapper.jar
        └── gradle-wrapper.properties

GitHub Action配置

name: CI

on:
  push:
    branches:
      - '*'

concurrency:
  group: ci-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    name: CI-Build
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: actions/setup-java@v4
        with:
          java-version: 17
          distribution: 'temurin'

      - name: Build and analyze
        run: |
          ./gradlew clean build

遇到的错误

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain

已确认gradle/wrapper目录下的文件已提交且未被.gitignore忽略,但问题仍存在。


可能的解决方案
  • 验证gradle-wrapper.jar的完整性
    提交的jar文件可能损坏,本地重新生成Gradle Wrapper后再提交:

    # 替换为你项目使用的Gradle版本
    ./gradlew wrapper --gradle-version 7.6.1
    

    生成后本地执行./gradlew clean build确认能正常运行,再提交更新后的wrapper文件。

  • 检查GitHub Action中文件拉取情况
    在checkout步骤后添加验证命令,确认gradle-wrapper.jar存在且大小正常:

    - name: Verify wrapper files
      run: |
        ls -la gradle/wrapper/
        du -h gradle/wrapper/gradle-wrapper.jar
    

    如果文件不存在或大小异常,说明checkout步骤存在问题,可尝试更换actions/checkout版本或检查仓库权限。

  • 修复gradlew脚本的换行符问题
    Ubuntu环境不兼容Windows格式的CRLF换行符,可在Action中转换脚本格式:

    - name: Fix gradlew line endings
      run: dos2unix gradlew
    

    或者在项目根目录添加.gitattributes文件,强制脚本使用LF换行:

    gradlew text eol=lf
    gradlew.bat text eol=crlf
    

    提交该文件后重新触发Action。

  • 确认Gradle与Java版本兼容性
    查看gradle/wrapper/gradle-wrapper.properties中的distributionUrl,确认对应的Gradle版本支持Java 17。例如Gradle 7.0+才支持Java 17,如果使用的是旧版本,需要升级Gradle或降低Java版本。

  • 清理Gradle缓存
    GitHub Action中缓存的Gradle文件可能损坏,执行构建前清理缓存:

    - name: Clean Gradle wrapper cache
      run: rm -rf $HOME/.gradle/wrapper/dists/
    

内容的提问来源于stack exchange,提问作者tgallei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:48:15