簡體   English   中英

帶有 GDSL 的 IntelliJ 中的 Jenkins 管道。 警告:“節點”不能應用於“(groovy.lang.closure<object> )'<div id="text_translate"><p> 我將 Jenkins 與 Pipelines 一起使用,並使用Jenkinsfile定義了一個<em>腳本化的管道</em>。 它看起來像這樣:</p><pre> node { /* some stages */ }</pre><p> 我已將 Jenkins 附帶的 GDSL 文件導入 IntelliJ。 現在我得到了語法突出顯示,但整個文件在單個警告塊中突出顯示,IntelliJ 顯示以下消息:</p><pre> 'node' cannot be applied to '(groovy.lang.closure&lt;Object&gt;)'</pre><p> 我認為可能是語法定義不支持節點 object 作為 root,但是如果我嘗試以 root 身份編寫pipeline ,則會出現相同的警告。</p></div></object>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM