为什么当我使用github actions CI进行gradle项目时,我会遇到“./gradlew:拒绝权限”错误?

okxuctiv  于 2023-08-06  发布在  Git
关注(0)|答案(4)|浏览(202)

我有一个非常简单的gradle项目,当我设置GitHub Actions CI时,我遇到了这个错误:

Run ./gradlew clean dependencies
  ./gradlew clean dependencies
  shell: /bin/bash -e {0}
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java/8.0.222/x64
    JAVA_HOME_8.0.222_x64: /opt/hostedtoolcache/Java/8.0.222/x64
/home/runner/work/_temp/8f29e484-fbb4-4e29-a02a-679519aec24c.sh: line 1: ./gradlew: Permission denied
##[error]Process completed with exit code 126.

字符串

relj7zay

relj7zay1#

我找到答案了!
我只需要使用以下命令更改git仓库上的gradlew文件权限,使其可执行:

git update-index --chmod=+x gradlew
git commit -m "Make gradlew executable"

字符串
这很简单,但杀了我的时间!

lo8azlld

lo8azlld2#

要解决此问题,您可能需要在gradle之前添加chmod操作。就像这个:

- name: Change wrapper permissions
  run: chmod +x ./gradlew

字符串
因此,整个工作流文件可能如下所示:

name: Java CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Change wrapper permissions
      run: chmod +x ./gradlew
    - name: Build with Gradle
      run: ./gradlew build

xeufq47z

xeufq47z3#

只是想提到另一个潜在的问题,发生在我身上,即使上述变化。
我犯了个错误:

./gradle

字符串
而这本该是

./gradlew

1cosmwyk

1cosmwyk4#

在我的例子中,我添加了权限,并更新为使用JDK11运行,这样更好

steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
         java-version: 11
         
      - name: Grant execute permission to Gradle wrapper
        run: chmod +x ./gradlew

字符串

相关问题