146 votes

Mise en évidence de la syntaxe Jenkinsfile dans un projet Java utilisant Intellij Idea

Nous avons déjà essayé les approches énumérées ci-dessous:

Après avoir cherché sur le web pour de nombreuses heures sur plusieurs jours, nous n'avons pas encore trouvé une ressource utile sur cette question. Ainsi, il semble logique de demander une nouvelle question ici.

Nous développons nos projets Java dans IntelliJ idea et souhaitez intégrer notre construit avec Jenkins. Lorsque nous créons un Jenkinsfile dans l'Idée, nous ne sommes pas de la syntaxe ou de l'auto-complétion. Depuis, nous sommes à nouveau Jenkins, ces caractéristiques serait vraiment utile pour nous. Comment pouvons nous faire à l'Idée d'être plus solidaire avec Jenkinsfiles?

Si il n'y a aucun moyen d'obtenir la coloration syntaxique et l'auto-remplissage pour un Jenkinsfile dans l'idée, ce que d'autres éditeurs seraient-elles utiles?

Veuillez noter:

  • nous travaillons avec des projets java, pas groovy projets.
  • Nous avons déjà essayé le plugin https://github.com/oliverlockwood/jenkinsfile-idea-plugin. Lorsque le plugin est activé, le Jenkinsfile est reconnue en tant que telle, mais au lieu de la coloration syntaxique, nous obtenons un message d'erreur, veuillez voir ci-dessous.

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

    Idée souligne le " p " de "pipeline" comme une erreur. Le message d'erreur:

    JenkinsTokenType.COMMENTAIRE, JenkinsTokenType.CRLF ou JenkinsTokenType.STEP_KEY prévu, got 'p'

Merci pour toute aide!

319voto

Tom Points 5036

Si vous souhaitez de l'IDÉE de reconnaître un Jenkinsfile comme Groovy fichier, puis vous pouvez ajouter la Chaîne "Jenkinsfile" comme un nom de fichier valide le modèle (normalement contient les fichiers de type) pour Groovy fichiers. C'est pris en charge "hors de la boîte", sans nécessiter aucun Plugin supplémentaire (à l'exception de la "Groovy" Plugin, mais qui fait déjà partie de l'IDÉE).

Pour ce faire allez dans le menu paramètres, ouvrez l'Éditeur de" et ensuite "Types de Fichiers". Maintenant, sélectionnez "Groovy" en haut de la liste et d'ajouter "Jenkinsfile". Vous pouvez également utiliser une regex comme "Jenkinsfile*" si vous voulez être plus flexible en ce qui concerne une option de fichier se terminant par la Jenkinsfile.
Le réglage doit maintenant ressembler à ceci: IDEA file type settings

Votre exemple ressemble maintenant à ceci dans l'IDÉE (avec le thème de Dracula): Jenkinsfile syntax highlight

D'où l'IDÉE maintenant fournit la coloration syntaxique et l'auto-complétion pour autant que je peux dire. Il suggère une fonction existante, de méthode, de noms lors de l'écriture, mais je ne suis pas un Groovy développeur, donc je ne peux pas dire si certaines suggestions sont manquantes.

19voto

rexford Points 334

Vous trouverez ci-dessous les commentaires reçus d' IntelliJ . Nous ferons un suivi si nous sommes en mesure de fournir une solution efficace.

Andrey Dernov, IntelliJ, 14 décembre, 07h50 CET

Bonjour Georg, Il n’existe pas de support spécial de la part de l’éditeur Intellisense pour l’édition de Jenkinsfiles dans IDE. Pour ce faire, vous devrez écrire un plug-in de langue personnalisé.

Ou vous pouvez envisager de mettre en œuvre un tel support en écrivant Kotlin DSL. Quelques exemples pour commencer.

10voto

futchas Points 151

Une autre option consiste à utiliser un shabang au-dessus du fichier Jenkins comme ceci: #!/usr/bin/env groovy . Aussi, vous pouvez essayer gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij mais jusqu'à présent, il ne prend pas en charge les pipelines déclaratifs: https: //issues.jenkins-ci .org / browse / JENKINS-40127

1voto

Neil Millard Points 21

En regardant le code source, il apparaît que COMMENTS n'est pas défini (ils sont commentés dans le code)

STEP_KEY est défini comme suit: STEP_NAME = "sh" | "parallèle"

Je ne suis pas sûr que le plugin en fasse beaucoup plus et il n'a pas été mis à jour depuis 2 ans.

-18voto

Josh M. Points 9330

Utilisez sh comme ceci et l'erreur devrait disparaître (a fonctionné pour moi) ...

 steps {
    sh """
        echo 'Hello, World!'
    """
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X