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

GitHub Actions中setup-java报错ENOTFOUND api.adoptium.net求助

GitHub Actions配置SonarQube拉取请求分析的问题解决方案

问题背景

刚接触GitHub Actions,配置SonarQube拉取请求分析时,工作流执行报错:

Trying to resolve the latest version from remote Error: getaddrinfo ENOTFOUND api.adoptium.net

同时收到警告:

"Build
Node.js 12 actions are deprecated. Please update the following
actions to use Node.js 16: actions/checkout@v2. For more information
see:
https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/"

使用的工作流脚本如下:

jobs:
  build:
    name: Build
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0 #comment
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17.0.6'
          distribution: 'temurin'
      - name: Cache SonarQube packages
        uses: actions/cache@v3
        with:
          path: ~/.sonar/cache
          key: ${{ runner.os }}-sonar
          restore-keys: ${{ runner.os }}-sonar
      - name: Cache Gradle packages
        uses: actions/cache@v3
        with:
          path: ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
          restore-keys: ${{ runner.os }}-gradle
      - name: Build and analyze
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
        run: ./gradlew build sonar --info

错误与警告的解决方案

1. 解决getaddrinfo ENOTFOUND api.adoptium.net错误

该错误核心是自托管Runner无法解析/访问api.adoptium.net域名,对应解决方法:

  • 先在Runner机器上执行ping api.adoptium.net,验证网络连通性;
  • 若处于受限网络(如企业内网):
    • 配置Runner机器的代理规则,允许访问该外部域名;
    • 更换JDK发行版,比如将distribution改为zulu,无需依赖adoptium的源;
    • 提前在Runner机器上安装好JDK 17.0.6,跳过actions/setup-java步骤,直接通过环境变量指定JDK路径。

2. 解决Node.js 12过时警告

直接将actions/checkout@v2升级到v3及以上版本(推荐actions/checkout@v4),新版本已切换至Node.js 16+,符合GitHub的运行环境要求。

工作流步骤检查

当前工作流步骤无缺失,但可做以下优化:

  • 同步升级actions/setup-java到v4版本,配合新版checkout提升兼容性;
  • 若自托管Runner有多个,建议在runs-on中指定具体的Runner标签,避免环境匹配错误;
  • 确保SonarQube已配置PR分析规则,且SONAR_TOKEN拥有对应仓库的分析权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 13:27:50