web-dev-qa-db-ja.com

Intellij Ideaを使用したJavaプロジェクトでのJenkinsファイル構文の強調表示

私たちはすでに下記のようなアプローチを試みました:

何日も何時間もウェブを検索しても、この問題に関する有用なリソースはまだ見つかっていません。したがって、ここで新しい質問をすることは意味があります。

私たちはIntelliJの考え方で私たちのJavaプロジェクトを開発しており、私たちのビルドをJenkinsと統合したいと思います。 IdeaでJenkinsファイルを作成しても、構文の強調表示や自動補完は得られません。私たちはJenkinsに不慣れなので、これらの機能は私たちにとって本当に役に立つでしょう。どのようにしてアイデアをJenkinsfilesとより協力的にすることができますか?

Jenkinsファイルの構文の強調表示と自動補完を概念的に理解する方法がない場合、他にどのようなエディタが役立ちますか?

ご注意ください:

  • 私たちはGroovyプロジェクトではなく、Javaプロジェクトを扱っています。
  • 我々はすでにプラグインを試しています https://github.com/oliverlockwood/jenkinsfile-idea-plugin 。プラグインが有効になると、Jenkinsファイルはそのように認識されますが、構文の強調表示の代わりにエラーメッセージが表示されます。下記を参照してください。

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

    アイデアはエラーとして 'パイプライン'の 'p'を強調表示します。エラーメッセージは次のとおりです。

    JenkinsTokenType.COMMENT、JenkinsTokenType.CRLF、またはJenkinsTokenType.STEP_KEYが必要です。

助けてくれてありがとう!

61
rexford

IDEAにJenkinsファイルをGroovyファイルとして認識させたい場合は、Groovyファイルの文字列 "Jenkinsfile"を有効なファイル名パターン(通常はファイルの末尾を含む)として追加できます。これは「追加設定なしで」追加のプラグインを必要とせずにサポートされます(「Groovy」プラグインを除く、ただしそれはすでにIDEAの一部です)。

これを行うには、設定メニューに行き、[エディタ]項目を開いてから[ファイルタイプ]を開きます。それでは上のリストで "Groovy"を選択して "Jenkinsfile"を追加してください。 Jenkinsファイルのオプションのファイル拡張子に関してより柔軟にしたい場合は、 "Jenkinsfile *"のような正規表現を使用することもできます。
設定は次のようになります。 IDEA file type settings

あなたの例はIDEA(Draculaテーマ付き)でこんな感じになりました: Jenkinsfile syntax highlight

そのため、IDEAは構文の強調表示と自動補完機能を提供しています。執筆中は既存の関数/メソッド名を提案しますが、私はGroovy開発者ではないので、いくつかの提案が欠けているかどうかはわかりません。

137
Tom

もう一つの選択肢は、この#!/usr/bin/env groovyのようにJenkinsファイルの上にシャバンを使うことです。また、あなたはgdslを試すことができます。 https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij しかしそうそう宣言的パイプラインはサポートされていません。 https://issues.jenkins-ci.org/browse/JENKINS-40127

4
futchas

ソースコードを見ると、COMMENTSは定義されていないようです(それらはコード内でコメントアウトされています)。

STEP_KEYは次のように定義されています。STEP_NAME = "sh" | "平行"

私はプラグインがもっと多くのことをするのかわからないし、それは2年間で更新されていません。

1
Neil Millard

下記は私たちから得たフィードバックですIntelliJ。我々が実用的な解決策を提供することができるならば、我々はこれについてフォローアップするでしょう。

Andrey Dernov、IntelliJ、12月14日、7:50 CET

Georgさん、こんにちは。IDEでJenkinsfilesを編集するための特別なEditor intellisenseサポートはありません。これにはカスタム言語プラグインを書く必要があります。

あるいは、Kotlin DSLを書くことによってそのようなサポートを実装することを検討することができます。で始まるいくつかの例。

1
rexford