在jenkins控制台执行jar和显示文本日志
问题描述:
我有文件要在远程机器上部署和运行。 我已经使用jenkins传输了该文件,现在我所做的是在Execute Windows Batch Command
中使用psexec
在远程计算机上调用a.bat
批处理文件。 a.bat
执行 当jar开始执行时,命令提示符文本存储在一个文件中。 使用java -jar abc.jar >> a.log 2>&1
现在,我要的是显示在詹金斯控制台a.log
内容时正在执行的jar文件 (该文件不断被写,我想在詹金斯控制台显示它,因为它正在被写入)在jenkins控制台执行jar和显示文本日志
我试图使用并行处理来调用start
两次,一次是调用批处理文件,另一次是使用type
进行显示。
但是,当我使用start
我得到Process leaked file descriptor
。 有没有其他方法可以实现这一点。无论是在jenkins中调用powershell还是计划任务。
答
你需要在windows中寻找tee等价物,但是如果有几个像GNU utilities for Win32,但是如果你有cygwin,你仍然可以使用tee,这将简化方案。
现在的问题是如何在jenkins上运行cygwin上的jar文件?
你仍然可以使用执行windows [batch] shell。并将cygwin安装路径添加到PATH变量中,并开始像使用BOSS一样使用linux命令。
或者你可以在批量生成的命令中使用powershell tee。
没有设置cygwin我可以在Windows Powershell中运行'tee'。现在需要将所有批处理语法转换为PowerShell。感谢您的解决方案。如果我需要任何帮助,我会回来。 P.S.〜我们都来自同一个城市;) – HunterrJ