我的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/"管道发生故障后。然后重新启动管道。