webentwicklung-frage-antwort-db.com.de

Wie importiere ich eine Groovy-Klasse in ein Jenkinfile?

Wie importiere ich eine Groovy-Klasse in eine Jenkins-Datei? Ich habe mehrere Ansätze ausprobiert, aber keiner hat funktioniert.

Dies ist die Klasse, die ich importieren möchte:

Thing.groovy

class Thing {
    void doStuff() { ... }
}

Dies sind Dinge, die nicht funktionieren:

Jenkinsfile-1

node {
    load "./Thing.groovy"

    def thing = new Thing()
}

Jenkinsfile-2

import Thing

node {
    def thing = new Thing()
}

Jenkinsfile-3

node {
    evaluate(new File("./Thing.groovy"))

    def thing = new Thing()
}
6

Sie können eine neue Instanz der Klasse über den Ladebefehl zurückgeben und das Objekt zum Aufrufen von "doStuff" verwenden.

Also, das hättest du in "Thing.groovy"

class Thing {
   def doStuff() { return "HI" }
}

return new Thing();

Und das hätten Sie in Ihrem dsl-Skript:

node {
   def thing = load 'Thing.groovy'
   echo thing.doStuff()
}

Welches sollte "HI" auf die Konsolenausgabe drucken.

Würde dies Ihren Anforderungen entsprechen?

5
Daniel Omoto

Das ist interessant, wie kann man mehrere Konstruktoren haben?

Sie können dies problemlos tun, wenn Sie eine gemeinsam genutzte Bibliothek verwenden. In diesem Fall befindet sich die Klasse jedoch außerhalb einer gemeinsam genutzten Bibliothek

0
Zangdar