Jenkins-pipeline in IntelliJ mit GDSL. Warnung: die ‚Knoten‘ nicht angewandt werden kann ‚(groovy.lang.Verschluss<Object>)‘

Ich bin mit Jenkins mit Rohrleitungen und definiert scripted-pipeline Verwendung eines Jenkinsfile. Es sieht wie folgt aus:

node {
  /* some stages */
}

Habe ich importiert der GDSL-Datei an, die mit Jenkins in IntelliJ. Jetzt habe ich syntax-highlighting, sondern die gesamte Datei wird markiert, in einer einzigen Warnung-block für die IntelliJ zeigt die folgende Meldung:

'node' cannot be applied to '(groovy.lang.closure<Object>)'

Ich dachte, es könnte sein, dass das node-Objekt wird nicht unterstützt als root, indem Sie die syntax-definition, aber wenn ich versuche zu schreiben pipeline als root dann die gleiche Warnung erscheint.

InformationsquelleAutor lanoxx | 2017-11-02



One Reply
  1. 9

    Habe eine Lösung gefunden. Eine kleine änderung ist erforderlich, den pipeline.gdsl Datei (z.B. der GDSL-Datei, die heruntergeladen wurde von Jenkins und in IntelliJ durch uns).

    Finden Sie die folgende Zeile in der gdsl-Datei:

    method(name: 'node', type: 'Object', 
           params: [label:java.lang.String, body:'Closure'], 
           doc: 'Allocate node')

    Und fügen Sie diese Zeile in Ergänzung zu dem vorhergehenden:

    method(name: 'node', type: 'Object', 
          params: [body:'Closure'], 
          doc: 'Allocate node')

    Dadurch wird eine überlastung definition in der Syntax-Baum, der sagt, IntelliJ, dass der Knoten Methode hat zwei version, man nimmt sowohl eine String und ein Closure, und andere, die akzeptiert nur eine Closure.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.