it-swarm.com.de

Hervorhebung der Jenkinsfile-Syntax in Java project using Intellij Idea

Wir haben bereits die folgenden Ansätze ausprobiert:

Nachdem wir an mehreren Tagen stundenlang im Internet gesucht haben, haben wir immer noch keine hilfreiche Ressource zu diesem Thema gefunden. Es erscheint daher sinnvoll, hier eine neue Frage zu stellen.

Wir entwickeln unsere Java -Projekte in IntelliJ idea und möchten unsere Builds in Jenkins integrieren. Wenn wir in Idea ein Jenkinsfile erstellen, erhalten wir keine Syntaxhervorhebung oder automatische Vervollständigung Jenkins, diese Funktionen wären wirklich nützlich für uns. Wie können wir Idea mit Jenkinsfiles unterstützender machen?

Wenn es keine Möglichkeit gibt, Syntaxhervorhebung und automatische Vervollständigung für eine Jenkins-Datei in Idee zu bekommen, welche anderen Editoren wären hilfreich?

Bitte beachten Sie:

  • wir arbeiten mit Java Projekten, keine groovigen Projekte.
  • Wir haben das Plugin bereits ausprobiert https://github.com/oliverlockwood/jenkinsfile-idea-plugin . Wenn das Plugin aktiviert ist, wird die Jenkins-Datei als solche erkannt. Anstatt die Syntax hervorzuheben, wird eine Fehlermeldung angezeigt (siehe unten).

    pipeline {
    agent { docker 'maven:3.3.3' }
    stages {
        stage('build') {
            steps {
                sh 'echo Hello, World!'
            }
        }
      }
    }
    

    Idea hebt das "p" der "Pipeline" als Fehler hervor. Die Fehlermeldung lautet:

    JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF oder JenkinsTokenType.STEP_KEY erwartet, bekam 'p'

Danke für jede Hilfe!

68
rexford

Wenn Sie möchten, dass IDEA eine Jenkins-Datei als Groovy-Datei erkennt, können Sie die Zeichenfolge "Jenkins-Datei" als gültiges Dateinamenmuster (enthält normalerweise Dateiendungen) für Groovy-Dateien hinzufügen. Dies wird unterstützt "out of the box" ohne zusätzliches Plugin (außer dem "Groovy" -Plugin, das aber bereits Teil von IDEA ist).

Öffnen Sie dazu im Einstellungsmenü den Punkt "Editor" und dann "Dateitypen". Wählen Sie nun "Groovy" in der oberen Liste und fügen Sie "Jenkinsfile" hinzu. Sie können auch einen regulären Ausdruck wie "Jenkinsfile *" verwenden, wenn Sie hinsichtlich einer optionalen Dateiendung für das Jenkinsfile flexibler sein möchten.
Die Einstellung sollte nun so aussehen: IDEA file type settings

Ihr Beispiel sieht jetzt so aus in IDEA (mit dem Dracula-Thema): Jenkinsfile syntax highlight

Also IDEA bietet jetzt Syntax-Hervorhebung und automatische Vervollständigung, soweit ich das beurteilen kann. Es schlägt beim Schreiben vorhandene Funktions-/Methodennamen vor, aber ich bin kein Groovy-Entwickler, daher kann ich es nicht beurteilen wenn einige Vorschläge fehlen.

161
Tom

Eine andere Möglichkeit ist die Verwendung eines Shabangs über der Jenkins-Datei wie folgt #!/usr/bin/env groovy. Sie können auch gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij ausprobieren, aber bisher werden deklarative Pipelines nicht unterstützt: - https://issues.jenkins-ci.org/browse/JENKINS-40127

4
futchas

Betrachtet man den Quellcode, sieht es so aus, als wären KOMMENTARE nicht definiert (sie sind im Code auskommentiert).

Der STEP_KEY ist definiert als: STEP_NAME = "sh" | "parallel"

Ich bin mir nicht sicher, ob das Plugin mehr kann und seit 2 Jahren nicht mehr aktualisiert wurde.

1
Neil Millard

Nachfolgend finden Sie das Feedback von IntelliJ. Wir werden dies weiterverfolgen, wenn wir in der Lage sind, eine funktionierende Lösung bereitzustellen.

Andrey Dernov, IntelliJ, 14. Dezember, 07:50 Uhr MEZ

Hallo Georg, es gibt keine spezielle Editor-Intellisense-Unterstützung für die Bearbeitung von Jenkins-Dateien in IDE. Sie müssen dafür ein benutzerdefiniertes Sprach-Plugin schreiben.

Oder Sie können eine solche Unterstützung über das Schreiben von Kotlin DSL implementieren. Zunächst einige Beispiele.

1
rexford