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

如何在GitHub Actions工作流中运行构建生成的JAR包?

解决GitHub Actions中JAR运行失败及上传结果到Google Bucket的方案

先搞定JAR运行的问题

你当前的运行命令存在几个关键问题:

  1. 命令大小写错误:Linux环境下Java命令是小写的java,不是Java
  2. JAR路径错误:Gradle构建生成的JAR默认存放在项目根目录的build/libs/子文件夹中,直接写文件名会导致找不到文件
  3. 无效的cd命令:每个run步骤都是独立的shell会话,单独的cd命令仅在当前步骤生效,后续步骤会回到默认工作目录

修正后的JAR运行步骤

在构建完成后,添加以下步骤运行JAR并将输出保存到文件:

- name: 运行JAR并保存输出
  run: |
    # 可选:确认JAR文件位置,用于调试
    ls -la build/libs/
    # 运行JAR,将输出写入result.txt文件
    java -jar build/libs/hello-world-0.1.0.jar > result.txt

处理上传结果到Google Bucket的需求

使用Google官方提供的Action完成上传操作最可靠,步骤如下:

  1. 将你的Google Cloud服务账号密钥存储在GitHub仓库的Secrets中,命名为GCP_SERVICE_ACCOUNT_KEY
  2. 在工作流中添加上传步骤:
- name: 上传结果到Google Bucket
  uses: google-github-actions/upload-cloud-storage@v1
  with:
    credentials: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
    path: ./result.txt
    destination: your-bucket-name/results/  # 替换为你的Bucket实际路径
    parent: false

完整的工作流代码

name: demo
on:
  push:
    branches:
      - 'pipeline-dev'

jobs:
  conditional_step:
    runs-on: 'ubuntu-20.04'
    steps:
    - uses: actions/checkout@v3
      with:
        repository: hello-world-with-gradle
    - uses: actions/setup-java@v3
      with:
        distribution: temurin
        java-version: 8
        
    - name: Setup Gradle
      uses: gradle/gradle-build-action@v2
    
    - name: Execute Gradle build
      run: ./gradlew build
    
    - name: 运行JAR并保存输出
      run: |
        ls -la build/libs/
        java -jar build/libs/hello-world-0.1.0.jar > result.txt
    
    - name: 上传结果到Google Bucket
      uses: google-github-actions/upload-cloud-storage@v1
      with:
        credentials: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
        path: ./result.txt
        destination: your-bucket-name/results/
        parent: false

备选方案(若JAR仍无法运行)

如果上述方法仍无法运行JAR,可以尝试以下途径:

  • 检查JAR是否为可执行包:运行jar tf build/libs/hello-world-0.1.0.jar,确认存在META-INF/MANIFEST.MF文件且其中包含Main-Class属性
  • 直接使用Gradle的run任务:如果项目已配置run任务,可直接执行./gradlew run > result.txt,跳过手动运行JAR的步骤
  • 验证Java环境:在运行JAR前添加run: java -version步骤,确认Java版本与项目要求一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:25:59