GitHub Actions设置默认工作目录后Gradle构建仍在根目录执行的问题
解决GitHub Actions中Gradle子目录项目构建路径错误问题
问题原因
你配置的defaults.run.working-directory仅对使用run:直接执行shell命令的步骤生效,但gradle/gradle-build-action这个官方Action有自己的工作目录参数,不会继承该全局配置,因此构建操作依然会在仓库根目录寻找Gradle wrapper文件,触发路径错误。
修复后的配置
修改Build with Gradle步骤,添加build-root-directory参数指定你的Gradle项目子目录:
name: Java CI with Gradle on: push: branches: [ "master" ] pull_request: branches: [ "master" ] permissions: contents: read jobs: build: runs-on: ubuntu-latest defaults: run: shell: bash working-directory: ./gradle-specific steps: - uses: actions/checkout@v3 - name: Set up JDK 16 uses: actions/setup-java@v3 with: java-version: '16' distribution: 'temurin' - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: clean build build-root-directory: ./gradle-specific # 新增该行指定项目根目录
关键说明
build-root-directory是gradle/gradle-build-action的专属参数,用于指定包含gradlew和gradle/wrapper目录的Gradle项目根路径。- 原有的
defaults.run.working-directory可保留,它会对后续所有使用run:执行的shell命令生效,但第三方Action通常有自己的路径配置参数,需参考对应Action文档确认。
内容的提问来源于stack exchange,提问作者Tanay Ghirnikar
相关产品推荐
相关产品推荐

