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

如何在TeamCity中配置Java 11运行环境?适配SBT单元测试项目

解决TeamCity代理适配Java 11的两种方案

方案一:在运行中的代理容器临时安装Java 11(快速测试用)

适合临时验证,容器重启后安装的Java 11会消失,步骤如下:

  • 查看运行中的代理容器ID:docker ps
  • 进入容器终端:docker exec -it <容器ID> /bin/bash
  • 安装OpenJDK 11(默认TeamCity代理镜像基于Debian):
    apt update && apt install -y openjdk-11-jdk
    
  • 后续在TeamCity构建配置中,添加系统参数env.JAVA_HOME,值设为/usr/lib/jvm/java-11-openjdk-amd64,让SBT使用该Java版本。

方案二:构建搭载Java 11的自定义TeamCity代理镜像(持久化推荐)

通过自定义Docker镜像实现持久化,后续启动代理直接用这个镜像,步骤如下:

  1. 创建Dockerfile文件,内容:
    FROM jetbrains/teamcity-agent
    
    # 安装OpenJDK 11并清理缓存
    RUN apt update && \
        apt install -y openjdk-11-jdk && \
        rm -rf /var/lib/apt/lists/*
    
    # 可选:设置默认JAVA_HOME为Java 11,也可在TeamCity构建配置中指定
    ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    
  2. 构建自定义镜像:
    docker build -t my-teamcity-agent-java11 .
    
  3. 启动自定义代理容器:
    docker run -e SERVER_URL="http://<你的自托管服务器URL>:8111" my-teamcity-agent-java11
    

额外配置提示

  • 在TeamCity构建配置的参数页,添加env.JAVA_HOME参数指定Java 11路径,是最灵活的方式,无需修改镜像或容器。
  • 也可在SBT项目的build.sbt中直接指定Java版本:
    javaHome := Some(file("/usr/lib/jvm/java-11-openjdk-amd64"))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 11:17:41