在编写Jenkins Groovy管道时,如何将字符串很好地连接到路径中?这样我就可以join('http://example.com/', '/r', 'some.html') -> 'http://example.com/r/some.html'
This note建议在“纯” Groovy中使用new File(dir1, dir2)
或Paths.get(dir1, dir2)
。
但是在詹金斯管道中,import java.nio.file.Paths
给了我
No such static method found: staticMethod java.nio.file.Paths get java.lang.String org.codehaus.groovy.runtime.GStringImpl.
通过new File
我得到了
Scripts not permitted to use new java.io.File java.lang.String java.lang.String. Administrators can decide whether to approve or reject this signature.
并且我有点同意詹金斯的观点,这是不允许的。还有另一种方法吗?
答案 0 :(得分:1)
用Paths或File对象构建url的坏主意,因为在Windows下您会得到错误的结果。
您可以使用简单的字符串连接来构建url,并使用URI.normalize()
删除多余的斜杠:
def u = new URI(['http://example.com/', '/r', 'some.html'].join('/')).normalize().toString()