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

如何在Forgejo中用GitHub Actions语法高效创建多行gradle.properties文件?

解决方案

你可以用以下几种简洁的方式,通过单个run步骤完成gradle.properties文件的创建和内容填充,同时保持可读性:

方法1:Bash Here Document(推荐)

这是最清晰易维护的方式,直接把多行内容写入文件,无需处理转义:

- run: |
    mkdir -p ~/.gradle/
    cat > ~/.gradle/gradle.properties << 'EOF'
    systemProp.http.proxyHost=proxy.domain.com
    systemProp.https.proxyHost=proxy.domain.com
    systemProp.http.proxyPort=9999
    systemProp.https.proxyPort=9999
    EOF
    cat ~/.gradle/gradle.properties

说明:

  • mkdir -p:确保~/.gradle/目录存在,即使目录已存在也不会报错(比单纯mkdir更安全)
  • << 'EOF':使用单引号包裹的分界符,避免Bash解析内容中的特殊字符或变量
  • 分界符之间的内容会完整写入目标文件,格式和你手动写的完全一致

方法2:printf命令

通过printf一次性输出多行内容,适合习惯用命令行参数的场景:

- run: |
    mkdir -p ~/.gradle/
    printf '%s\n' \
      'systemProp.http.proxyHost=proxy.domain.com' \
      'systemProp.https.proxyHost=proxy.domain.com' \
      'systemProp.http.proxyPort=9999' \
      'systemProp.https.proxyPort=9999' > ~/.gradle/gradle.properties
    cat ~/.gradle/gradle.properties

说明:

  • %s\n表示每个参数后添加换行符,保证文件内容每行一条配置
  • 反斜杠\用于换行书写命令,让配置项更清晰

方法3:echo多行转义

如果偏好echo命令,可以用-e参数解析换行符\n:

- run: |
    mkdir -p ~/.gradle/
    echo -e "systemProp.http.proxyHost=proxy.domain.com\n\
systemProp.https.proxyHost=proxy.domain.com\n\
systemProp.http.proxyPort=9999\n\
systemProp.https.proxyPort=9999" > ~/.gradle/gradle.properties
    cat ~/.gradle/gradle.properties

说明:

  • -e开启转义字符解析,\n代表换行
  • 行尾的\用于将长命令拆分成多行显示,避免单行过长

替换后的完整Workflow示例

把原来的多个run步骤替换成上述任意一种方法后,完整的YAML如下:

name: Android CI

on: [push]

jobs:
  build:
    runs-on: high
    steps:
      - run: |
          mkdir -p ~/.gradle/
          cat > ~/.gradle/gradle.properties << 'EOF'
          systemProp.http.proxyHost=proxy.domain.com
          systemProp.https.proxyHost=proxy.domain.com
          systemProp.http.proxyPort=9999
          systemProp.https.proxyPort=9999
          EOF
          cat ~/.gradle/gradle.properties
      - name: Checkout
        uses: https://github.com/actions/checkout@v4
      - name: set up JDK 1.8
        uses: https://github.com/actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Build with Gradle
        run: ./gradlew assembleDebug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:55:00