我尝试使用myFunction.groovy
#!/usr/bin/env groovy
def call(String URL = 'input') {
def command="curl '${URL}' --create-dirs -o output/data.jsp"
println command.execute().text
println "ls -ltrah".execute().text
}
也尝试过:
def call(String URL = 'input') {
echo "${URL}"
echo "test"
def command = ["curl", "${URL}", "--create-dirs", "-o", "output/data.jsp"].execute().text
println "ls -ltrah".execute().text
}
此命令甚至可以在我们的jenkins slave的执行脚本部分中使用:
println "curl 'http://xxx/data.jsp' --create-dirs -o output/data.jsp".execute().text
我在jenkins管道中用以下方式调用它:
myFunction 'http://xxx/file.jsp'
每次都在后期输出:
ENOENT: no such file or directory, open 'output/data.jsp'
我做错了什么? 当我在bash命令中执行命令时,该命令有效。
答案 0 :(得分:1)
<强>被修改强>:
根据mkobit关联的Best Practices Guide,File Operations Plugin可以帮助您,查看examples:
folderCreateOperation('test')
fileDownloadOperation('http://localhost/test.txt','','','test','test.txt')
<强>原始强>:
我不会通过curl执行此操作,您可以使用Groovy SDK:
File file = new File('test/test.txt')
file.getParentFile().mkdirs()
file.write('http://www.google.com'.toURL().text)
如果您不需要创建父目录,那么这是一个单行:
new File('test.txt').write('http://www.google.com'.toURL().text)
要使用curl解决您的问题,请检查curl版本并在必要时进行更新。