如何将文本文件的内容打印到Jenkins脚本控制台



我的Jenkins实例在Wondows上。我的文件在%JENKINS_HOME%/tools/tools-package-json-get-property/version.js

在Jenkins脚本控制台中,我尝试了这个操作,但没有成功(groovy错误(。

println %JENKINS_HOME%/tools/tools-package-json-get-property/version.js
println "%JENKINS_HOME%/tools/tools-package-json-get-property/version.js"
println ("%JENKINS_HOME%/tools/tools-package-json-get-property/version.js")
echo %JENKINS_HOME%/tools/tools-package-json-get-property/version.js

控制台错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 1: expecting EOF, found 'tools' @ line 1, column 30.
println %JENKINS_HOME%/tools/tools-package-json-get-property/version.js

编辑

我尝试println $JENKINS_HOME/tools/tools-package-json-get-property/version.js,但我有以下结果错误:

控制台错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 1: expecting EOF, found '-' @ line 1, column 34.
println $JENKINS_HOME/tools/tools-package-json-get-property/version.js

在变量名的开头使用$,而不是%。Grroovy只懂java语法。请参阅以下链接的4.4.1字符串插值。https://groovy-lang.org/syntax.html

new File("$JENKINS_HOME/tools/tools-package-json-get-property/version.js").eachLine { line ->
println line
}

这应该行得通。

如果您使用的是Windows,那么您只需使用type <filename>命令即可打印文本文件的内容。
在Jenkins文件中,只需添加以下内容,您就会在控制台输出中看到内容:

bat "type $JENKINS_HOME\tools\tools-package-json-get-property\version.js"

注意:对于Windows,我使用了\而不是/

如果您在linux上运行,那么您可以只使用cat <filename>

在groovy控制台中,它的工作原理类似

FileToRead = new File('C:\somepath\somefile.txt')
print FileToRead.text

在我的Jenkins BlueOcean管道内部,它是有效的,但你可能会遇到一个错误,有点像";需要脚本批准";,这可以被制成";http://jenkins:8080/manage/scriptApproval/"管道发生故障后。然后重新启动管道。

最新更新