TeamCity Linux 上 buildAgent 的默认 jdk

TeamCity Linux 上 buildAgent 的默认 jdk

我正在尝试在 64 位 ubuntu 上使用 32 位 java 运行 TeamCity(默认)构建代理,我创建了一个 [TeamCity]/bin/setenv.sh,其中包含:

JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun

运行带有 32 位 jre 的服务器时,这可以正常工作,但对于代理则不行:我已在 [buildAgent]/conf/buildAgent.properties 中尝试了这些行

JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun
JRE_HOME=/usr/lib/jvm/ia32-java-6-sun/jre

还有一个 '[buildAgent]/jre' 链接

[buildAgent]/jre -> /usr/lib/jvm/ia32-java-6-sun/jre/

当我执行'[TeamCity]/bin/runAll.sh start'时,我得到了这个:

Using CATALINA_BASE:   /srv/TeamCity
Using CATALINA_HOME:   /srv/TeamCity
Using CATALINA_TMPDIR: /srv/TeamCity/temp
Using JRE_HOME:        /usr/lib/jvm/ia32-java-6-sun
Using CLASSPATH:       /srv/TeamCity/bin/bootstrap.jar:/srv/TeamCity/bin/tomcat-juli.jar
Starting TeamCity build agent...
Java executable is found in '/usr/bin/..'.
Starting TeamCity Build Agent Launcher...
Agent home directory is /srv/TeamCity/buildAgent
Current Java runtime version is 1.6
Lock file: /srv/TeamCity/buildAgent/logs/buildAgent.properties.lock
Using no lock
Done [16436], see log at ../logs/teamcity-agent.log

从输出中可以看出,服务器使用的是 32 位 jdk,但构建代理正在运行“/usr/bin”中的 java(在我的情况下是 64 位)。

仔细检查 '[buildAgent]/bin/findJava.sh',似乎脚本运行了 'which java',并在尝试任何提供的参数/文件夹之前找到了默认的系统 java。我认为它应该在系统 java 之前找到 '[buildAgent]/jre'。

指定构建代理使用的 Java 版本的正确方法是什么?该版本可能与服务器的版本不同?

在检查 java 的系统路径之前,我是否应该修改 findJava.sh 来检查其参数?

答案1

您需要在项目的设置页面中设置buildAgent的JDK版本。

您指定的 JRE 版本适用于 Teamcity 服务器。如果您转到项目的“编辑配置设置”页面,则会出现“构建步骤”链接。在构建步骤页面中,您可以指定 JDK 和 JDK 主路径。

相关内容