Jenkins在具有GUI的Windows CMD构建上卡住

285次阅读
没有评论

问题描述

正在尝试自动化导入和导出Oracle的PeopleSoft应用程序设计师。这是一个GUI程序,但它可以在Windows命令行中执行某些任务。问题是,尽管有隐藏GUI、启动画面和自动退出的参数,但在Jenkins中运行时却卡住了。我怀疑尽管隐藏了所有图形界面,但Windows桌面窗口管理器(或其他什么东西)仍然被调用,而Jenkins无法处理这个问题。我之所以这样认为,是因为当我执行命令时,我的CMD窗口失去了焦点。我尝试过使用”Execute windows batch command”和Git Bash,”Execute Shell”以及调用cmd.exe。当我在实际的git bash窗口中运行此命令而不隐藏GUI时,GUI仍然弹出,所以Git Bah程序没有同样的问题。我要么如何在Windows命令中抑制所有GUI,要么给程序提供一个放置这些不可见窗口的地方?或者,如果我对GUI是问题的假设完全错误,我该如何进行故障排除?以下是我在bash中使用的命令:

cmd.exe /c "PSIDE.EXE -HIDE -SS NO -SN NO -PJTF TEST_PROJECT_NAME -FP C:\export -CT ORACLE -CD $PS_PROJ_DB -CO $PS_PROJ_USER -CP $PS_PROJ_PASS -QUIT"

Jenkins直接安装在运行命令的Windows机器上。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

目前,较不理想的解决方案是在终端中以登录到桌面的方式运行Jenkins,而不是作为服务运行。虽然我不想这样做,但它完全解决了问题。

方案2

如果你不想在终端中运行Jenkins,你可以尝试以下解决方案:
1. 确保Jenkins以管理员权限运行。这可以通过右键单击Jenkins快捷方式,选择”以管理员身份运行”来实现。
2. 在Jenkins的构建步骤中,使用”Execute Windows batch command”来运行你的命令。
3. 在命令中添加start /b,这将使命令在后台运行,而不会打开新的窗口。
4. 将命令保存到一个批处理文件中,并在Jenkins中调用该批处理文件。

以下是一个示例:

start /b cmd.exe /c "PSIDE.EXE -HIDE -SS NO -SN NO -PJTF TEST_PROJECT_NAME -FP C:\export -CT ORACLE -CD $PS_PROJ_DB -CO $PS_PROJ_USER -CP $PS_PROJ_PASS -QUIT"

这样,你的命令将在后台运行,而不会打开新的窗口。

方案3

如果上述解决方案仍然无法解决问题,你可以尝试以下方法进行故障排除:
1. 确保你的Jenkins和相关插件都是最新版本。
2. 检查Jenkins的日志文件,查看是否有任何错误或警告信息。
3. 尝试在其他机器上运行相同的命令,看看是否有相同的问题。这将帮助你确定是否是特定于机器的问题。
4. 尝试在命令中添加其他参数或选项,以查看是否可以解决问题。你可以参考PeopleSoft Application Designer的文档或官方支持论坛,寻求更多的帮助和建议。

希望这些解决方案能帮助你解决问题。如果问题仍然存在,请提供更多的详细信息,以便我们能够更好地帮助你。

正文完