我有一个与此非常相似的问题:使用 Groovy 脚本从 Jenkins 中的工作区读取文件 https://stackoverflow.com/questions/22917491/reading-file-from-workspace-in-jenkins-with-groovy-script
但是,我需要从系统 Groovy 脚本读取文件,因此使用 Text-finder 或 Groovy PostBuild 插件的解决方案将不起作用。
如何从系统 groovy 脚本获取工作空间路径?我已经尝试过以下方法:
System.getenv('WORKSPACE')
System.getProperty("WORKSPACE")
build.buildVariableResolver.resolve("WORKSPACE")
Thanks!
如果您的目录中有一个名为“a.txt”的文件工作区,以及一个名为“sysgvy.groovy”的脚本,您希望将其作为系统 groovy 脚本执行。假设您的“sysgvy.groovy”脚本需要读取文件“a.txt”。
本主题的问题是,如果您的脚本直接读取“a.txt”而不提供任何路径,则“sysgvy.groovy”执行并会抛出错误,指出找不到“a.txt”。
我测试了一下,发现下面的方法效果很好。
def build = Thread.currentThread().executable
然后使用
build.workspace.toString()+"\\a.txt"
作为替换“a.txt”的完整位置字符串。
通过将“a.txt”和“sysgvy.groovy”放置到 Jenkins 主计算机的工作区中来在 Jenkins 主计算机上运行也很重要。在从机上执行不起作用。
尝试一下,应该可以找到该文件并在脚本中读取该文件,没有任何问题。
如果变量Thread有问题,那只是需要导入一些模块而已。因此,将这些行添加到代码的开头:
import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)