Подсветка синтаксиса Jenkinsfile в проекте Java с использованием Intellij Idea

мы уже пробовали подходы, перечисленные ниже:

после поиска в интернете в течение многих часов в течение нескольких дней мы все еще не нашли полезный ресурс по этому вопросу. Таким образом, представляется целесообразным задать здесь новый вопрос.

мы разработка наших Java-проектов в IntelliJ idea и интеграция наших сборок с Jenkins. Когда мы создаем файл Jenkinsfile в Idea, мы не получаем подсветку синтаксиса или автоматическое завершение. Поскольку мы новички в Jenkins, эти функции будут действительно полезны для нас. Как мы можем сделать Idea более поддерживающей с Jenkinsfiles?

если нет способа получить подсветку синтаксиса и автоматическое завершение для файла Jenkinsfile в idea, какие другие редакторы были бы полезны?

Пожалуйста, обратите внимание:

  • мы работаем с проектами java, а не с заводными проектами.
  • мы уже пробовали плагин https://github.com/oliverlockwood/jenkinsfile-idea-plugin. Когда плагин активирован, Jenkinsfile распознается как таковой, но вместо подсветки синтаксиса мы получаем сообщение об ошибке, см. ниже.

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

    идея выделяет "p ""конвейера" как ошибку. Сообщение об ошибке читает:

    JenkinsTokenType.Комментарий, JenkinsTokenType.CRLF или JenkinsTokenType.STEP_KEY ожидал, получил 'p'

Спасибо за любую помощь!

4 ответов


Если вы хотите, чтобы IDEA распознала файл Jenkinsfile как файл Groovy, вы можете добавить строку "Jenkinsfile" в качестве допустимого шаблона имени файла (обычно содержит окончания файлов) для файлов Groovy. Это поддерживается "из коробки", не требуя дополнительного плагина (кроме плагина" Groovy", но это уже часть идеи).

для этого перейдите в меню настроек, откройте пункт "редактор", а затем"типы файлов". Теперь выберите " Groovy "в верхнем списке и добавьте"Jenkinsfile". Вы также можно использовать регулярное выражение типа " Jenkinsfile*", если вы хотите быть более гибким в отношении необязательного окончания файла для Jenkinsfile.
Настройка должна выглядеть следующим образом: IDEA file type settings

ваш пример теперь выглядит так в IDEA (с темой Дракулы): Jenkinsfile syntax highlight

so IDEA теперь обеспечивает подсветку синтаксиса и автоматическое завершение, насколько я могу судить. Он предлагает существующие имена функций/методов во время записи, но я не Заводной разработчик, поэтому я не могу сказать, отсутствуют ли некоторые предложения.


глядя на исходный код, похоже, что комментарии не определены (они комментируются в коде)
STEP_KEY определяется как: STEP_NAME= "sh" / "parallel"

Я не уверен, что плагин делает намного больше, и он не обновлялся в течение 2 лет.


Ниже приведена обратная связь, которую мы получили от IntelliJ. Мы будем следить за этим, если сможем обеспечить рабочее решение.

Андрей Дернов, 14 декабря, 07:50 CET

Привет Георг, нет специального редактора intellisense для редактирования Jenkinsfiles в IDE. Для этого вам нужно будет написать плагин custom language.

или вы можете рассмотреть возможность реализации такой поддержки с помощью написания Kotlin DSL. Некоторые примеры для начала с.


другой вариант-использовать шабанг поверх файла Jenkinsfile, как это #!/usr/bin/env groovy. Также вы можете попробовать gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij но пока он не поддерживает декларативные конвейеры:https://issues.jenkins-ci.org/browse/JENKINS-40127