Intellij Ideaを使用したJavaプロジェクトでのJenkinsfile構文の強調表示


101

私たちはすでに以下にリストされているアプローチを試しました:

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

IntelliJのアイデアでJavaプロジェクトを開発しており、ビルドをJenkinsと統合したいと考えています。IdeaでJenkinsfileを作成する場合、構文の強調表示や自動補完は行われません。私たちはJenkinsを初めて使用するので、これらの機能は私たちにとって非常に役立ちます。Jenkinsfilesを使用してIdeaのサポートを強化するにはどうすればよいですか?

Jenkinsfileの構文の強調表示とオートコンプリートを取得する方法がない場合、他にどのエディタが役に立ちますか?

ご注意ください:

  • 私たちはGroovyプロジェクトではなく、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.COMMENT、JenkinsTokenType.CRLF、またはJenkinsTokenType.STEP_KEYが必要ですが、 'p'を取得しました

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


カスタムプラグインがあります:plugins.jetbrains.com/plugin/10127-jenkinsfile-idea-pluginと機能リクエスト:youtrack.jetbrains.com/issue/IDEA-158104
y.bedrov

@ y.bedrovコメントありがとうございます。既に記載されているプラ​​グインを試しましたが、エラーメッセージだけが表示され、構文の強調表示や自動補完はありませんでした。プラグインの使用経験はありますか、それはあなたのために機能しますか?
レックスフォード2017

1
どうしてこの基本的なもののためにプラグインが必要になるのか私にはわかりません。"Jenkinsfile"をGroovyのファイルタイプとして追加するだけです([設定]> [エディタ]> [ファイルタイプ]> [Groovy]を選択し、 "Jenkinsfile"を "登録済みパターン"として追加します)。そのセットアップ後に何が欠けていますか?
トム・

1
@トムありがとう!実際、あなたのコメントは私たちが探していたものについてです。この情報を回答として入力してください。正しい/最も役立つ回答として受け入れます。
レックスフォード、

2
@Tom不足しているのは、実際のJenkins DSLのオートコンプリートと検証です
OrangeDog

回答:


224

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

これを行うには、設定メニューに移動し、「エディター」アイテムを開き、次に「ファイルタイプ」を開きます。次に、上部のリストで「Groovy」を選択し、「Jenkinsfile」を追加します。Jenkinsfileで終わるオプションのファイルについてより柔軟にしたい場合は、「Jenkinsfile *」のような正規表現を使用することもできます。
設定は次のようになります。 IDEAファイルタイプの設定

IDEAでの例は次のようになります(Draculaテーマを使用)。 Jenkinsfile構文のハイライト

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


6
人々が望むであろう機能には、GDSLの検証/オートコンプリート/クイックドキュメントリンターの統合が含まれます。理想的なプラグインは、最小限の設定ですべてを「正しく動作」させる(たとえば、Jenkinsインスタンスに向けるだけ)。
OrangeDog 2018

2
ちなみに、groovyファイルタイプはInteliJとAndroidスタジオでのみ利用でき、PyCharm 2018.3.2 では利用できません。このプラグインが必要なため、plugins.jetbrains.com
Ming

また、https:// <Jenkins> / job / <Job Name> / pipeline-syntax / gdslにあるJenkinsインスタンスからgdslファイルをダウンロードして、プロジェクトのGroovyクラスパスに配置することを検討してください。
ステファン

1
これは素晴らしいアイデアですが、Groovy SDKを構成する必要があります
owensmartin

1
鮮やかさ!TYすごい!Jenkinsfile.declarativeファイルを同じ方法で再割り当てして、構文の強調表示とコード補完の両方を取得できました。私たちにとって*.declarativeはテキストファイルタイプに割り当てられました。
icfantv


1

IntelliJからのフィードバックは以下のとおりです。実用的なソリューションを提供できる場合は、これについてフォローアップします。

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

こんにちはGeorg、IDEでJenkinsfilesを編集するための特別なエディターインテリセンスサポートはありません。このためのカスタム言語プラグインを作成する必要があります。

または、Kotlin DSLを作成して、このようなサポートの実装を検討することもできます。最初にいくつかの例を示します。


1

ソースコードを見ると、コメントが定義されていないようです(コード内でコメント化されています)。

STEP_KEYは、STEP_NAME = "sh" |として定義されています。"平行"

プラグインがもっと多くのことをしているとは思いませんし、2年間更新されていません。


-1

追加した場合

#!groovy

jenkinsfileにヘッダーを追加すると、IDEでGroovy構文が強調表示されます。


intellijでは機能せず、この答えは一般的に曖昧すぎます
Tomer Gal

-12

shこのように使用すると、エラーは解消されます(私にとってはうまくいきました)...

steps {
    sh """
        echo 'Hello, World!'
    """
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.