[英]Jenkins pipeline in IntelliJ with GDSL. Warning: 'node' cannot be applied to '(groovy.lang.closure<Object>)'
我將 Jenkins 與 Pipelines 一起使用,並使用Jenkinsfile
定義了一個腳本化的管道。 它看起來像這樣:
node {
/* some stages */
}
我已將 Jenkins 附帶的 GDSL 文件導入 IntelliJ。 現在我得到了語法突出顯示,但整個文件在單個警告塊中突出顯示,IntelliJ 顯示以下消息:
'node' cannot be applied to '(groovy.lang.closure<Object>)'
我認為可能是語法定義不支持節點 object 作為 root,但是如果我嘗試以 root 身份編寫pipeline
,則會出現相同的警告。
我找到了解決方案。 在pipeline.gdsl
文件中需要進行一些小的更改(例如,從Jenkins下載並由我們放入IntelliJ的GDSL文件)。
在gdsl文件中找到以下行:
method(name: 'node', type: 'Object',
params: [label:java.lang.String, body:'Closure'],
doc: 'Allocate node')
除了前一行之外還添加此行:
method(name: 'node', type: 'Object',
params: [body:'Closure'],
doc: 'Allocate node')
這將在語法樹中創建一個重載定義,告訴IntelliJ節點方法有兩個版本1接受String
和一個Closure
,另一個只接受Closure
。
要解決相同的問題,但要使用pipeline
:
“管道”不能應用於“(groovy.lang.Closure)”
添加:
method(name: 'pipeline', type: 'Object', params: [body:'Closure'], doc: 'Pipeline root element')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.