batch-file - TeamCity——启动tomcat

标签 batch-file tomcat deployment teamcity continuous-deployment

我正在尝试通过 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/

相关文章:

batch-file - 如何在批处理脚本中连接两个变量?

windows - 用空文件复制目录文件结构

java - 从 tomcat 服务器中的 webapp 调用 java 程序 - java 程序在 tomcat 服务器之外

tomcat - RHEL7 Tomcat setenv.sh

java - 未找到 Tomcat Jersey 类

batch-file - Grep 批量 ping

windows - 批处理脚本 if else 命令

c# - 为什么我不能在 Release模式下运行我的 C# 程序?

c# - 需要强制 Windows 窗体应用程序在启动时运行

.net - 安全发布网站后期构建的最佳方式是什么?