我正在尝试通过 teamcity 部署构建步骤启动 tomcat。下面的步骤在直接运行时都没有问题,但在 teamcity 步骤中不起作用。 java 窗口出现并关闭,就好像构建步骤在完成时会杀死所有子进程一样。我已经尝试了以下所有方法:
批处理(在源中运行批处理的命令行,或直接在 teamcity 脚本、命令行和流程构建类型中):
call "%env.CATALINA_HOME%\bin\startup.bat"
start "%env.CATALINA_HOME%\bin\startup.bat"
cmd /k "%env.CATALINA_HOME%\bin\startup.bat"
start "DEV server" "%env.CATALINA_HOME%\bin\startup.bat"
电源外壳:
# wasnt sure if env var was being carried over, not relevant
$env:CATALINA_HOME = %env.CATALINA_HOME%
Start-Process "%env.CATALINA_HOME%\bin\startup.bat"
有什么方法可以告诉 TeamCity 10 构建步骤“嘿,让任何开始运行的东西都离开”?
CATALINA_HOME 是 teamcity 参数 (env.CATALINA_HOME) 中的一个环境变量,并设置为正确的“C:\apache-tomcat”。
一些附加信息:TC 服务器和代理以用户帐户运行,用户帐户也可以访问所有文件夹(并且是本地管理员)。
最佳答案
在 tomcat bin\setenv.bat 中,我有 CATALINA_OPTS -XmX 和 -Xms 参数,它们非常大并且需要 64 位 java。
当执行这个特定的构建参数时(我推荐用于调试,它会阻止 TC 构建)
%env.CATALINA_HOME%\bin\catalina.bat
(argument: run)
然后我得到了一个退出代码 1 构建失败以及一条有用的错误消息(但没有 tomcat 日志):
[08:25:24]Error: Could not create the Java Virtual Machine.
[08:25:24]Error: A fatal exception has occurred. Program will exit.
[08:25:24]Invalid maximum heap size: -Xmx32768m
[08:25:24]The specified size exceeds the maximum representable size.
[08:25:24]Process exited with code 1
如果您需要子进程的大 Xmx 和 Xms,执行构建的 BUILD AGENT 也需要从 64 位运行!就我而言,我有,例如</p>
C:\Teamcity_BuildAgent_Deploy\jre
我根据 TC 文档也将我的 64 位 jre 安装复制粘贴到那里,然后它可以启动具有大型 Xmx 和 Xms 的进程。我没有调整 TEAMCITY_AGENT_MEM_OPTS 或任何批处理。
关于batch-file - TeamCity——启动tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39277416/