我正在尝试在 64 位 ubuntu 上使用 32 位 java 运行 TeamCity(默认)构建代理,我创建了一个 [TeamCity]/bin/setenv.sh,其中包含:
JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
还有一个“[buildAgent]/jre”链接
[buildAgent]/jre -> /usr/lib/jvm/ia32-java-6-sun/jre/
Run Code Online (Sandbox Code Playgroud)
当我执行 '[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
Run Code Online (Sandbox Code Playgroud)
从输出中可以看出,服务器使用的是 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 主路径。
| 归档时间: |
|
| 查看次数: |
5463 次 |
| 最近记录: |