我有一个非常简单的Groovy脚本:
--cc1 sycl --cc2 gcc --cc1opts ... --cc2opts ...
当我在Jenkins脚本控制台中输入并执行脚本时,我得到了预期的结果:
String test = "";
[0, 1, 2, 3, 4].each {test += it.toString()}
return test
然而,当我用curl执行相同的脚本时,我得到了其他的东西:
Result: 01234
有没有人知道这种差异可能来自哪里?
答案 0 :(得分:1)
不确定出现了什么问题,但改为显式字符串对我有用:
curl --show-error -d 'script=test="";[0,1,2,3,4].each{test = "${test}${it}"}; return test' http://my/domain/jenkins/scriptText
Result: 01234
打破你的榜样,并添加适当的调试:
$ curl --show-error -d 'script=test="";[0,1,2,3,4].each{test += it.toString(); println test}; return test' http://my/domain/jenkins/scriptText
0
1
2
3
4
Result: 4
所以测试没有被添加为字符串。使用GStrings直接将其整理出来。
另一种方法是使用注入,尽管它仍在使用gstrings:
$ curl --show-error -d 'script=test=[0,1,2,3,4].inject("") {acc, val -> "${acc}${val}"}; return test' http://my/domain/jenkins/scriptText
Result: 01234