我有一个调用 Powershell 脚本的 jenkins 管道步骤:
stage('Run script') {
steps {
script {
powershell(
returnStdout: true,
script: '''
. $env:WORKSPACE\\Script.ps1
Invoke-Script'''
)
}
}
}
反过来,该Invoke-Script
函数在单独的进程中执行 jar 文件:
...
$javaCommand = 'C:\\Program Files\\Java\\jre1.8.0_261\\bin\\java'
$args = @("-jar", "D:\\Test\\MyTest.jar")
$process = Start-Process $javaCommand -ArgumentList $args -NoNewWindow -PassThru
Wait-Process -InputObject $process -ErrorAction SilentlyContinue
...
该jar
文件很简单 - 愚蠢,它只有几logger.error
行来证明这个概念。问题是,当我直接在 slave 上Invoke-Script
从session 运行时,我会在控制台中看到所有输出。但是当我在 中运行相同的代码时,我在控制台中看不到该输出。任何想法为什么它会以这种方式运行,以及如何让我将信息输出到它的控制台。Powershell
PC
Powershell
Jenkins
Jenkins
Jenkins
PS 修改jar
文件不是选项,因为在现实中,我无法更新它(第三方),MyTest.jar
仅在此处举例