我正在使用Job DSL,我想下载一个文件,读取它,并设置一些env变量。
def static setSecrets(Job delegate, Map overrides = [:]) {
def liveUsername
def livePassword
def file
new URL('https://path/file').withInputStream { i ->
file.withOutputStream {
it << i
}
}
file.withReader { liveUsername = it.readLines().get(0) }
file.withReader { livePassword = it.readLines().get(1) }
def options = [
IDENTITY_USER: liveUsername,
IDENTITY_PASSWORD: livePassword]
setEnv(delegate, options, overrides)
}
这是我收到的例外
java.lang.NullPointerException: Cannot invoke method withOutputStream() on null object
好像文件的功能无法使用。但是在我希望的groovy文件中可以使用Job DSL模板以及所有常规功能。
答案 0 :(得分:2)
文件为空,因此在您调用方法时抛出NPE
def file
...
file.withOutputStream { // BANG!