1. ホーム
  2. java

[解決済み] Intellij Ideaを使用したJavaプロジェクトにおけるJenkinsfileのシンタックスハイライト表示

2022-06-30 07:22:59

質問

以下のようなアプローチを既に試しています。

何日も何時間も Web を検索した後、この問題に関して役に立つリソースはまだ見つかっていません。したがって、ここで新しい質問をすることは理にかなっているように思われます。

私たちは IntelliJ idea で Java プロジェクトを開発しており、Jenkins でビルドを統合したいと考えています。Idea で Jenkins ファイルを作成すると、構文強調表示または自動補完が行われません。私たちはJenkinsの初心者なので、これらの機能は私たちにとって本当に便利なものです。どうすればIdeaがJenkinsfileをよりサポートするようになりますか?

もし、idea で Jenkins ファイルのシンタックスハイライトと自動補完を得る方法がない場合、他にどのようなエディターが役に立ちますか。

ご注意ください。

  • 私たちは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!'
             }
         }
       }
     }
    
    

イデアが強調するのは ppipeline をエラーとする。エラーメッセージはこうです。

JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF or JenkinsTokenType.STEP_KEY expected, got 'p'

ご協力ありがとうございました。

どのように解決するのですか?

ついに、Idea の通常の Java プロジェクトで Jenkins ファイルの構文強調表示とコード補完を提供する、私たちのために動作するソリューションを見つけました。 その解決策は ここから , ここ (そして追加の個人的な実験/調査から)

  1. Groovy SDKを(まだの場合は)以下からダウンロードする。 Groovyのページ からダウンロードし、あなたのJavaプロジェクトでそれを設定します。これに関するヘルプは を参照してください。

  2. パイプラインのGDSLファイルをJenkinsインスタンスからダウンロードします。 https://yourJenkinsInstance.tld/pipeline-syntax/gdsl そして、それをJavaプロジェクトのクラスパスに追加してください。例えば、新しいフォルダ src/main/jenkins を作成し、パイプライン gdsl ファイルをそこに置き、IntelliJ Idea でそのフォルダをソースルートとしてマークします。

  3. 以下のように、groovyファイルの有効なファイル名パターンとして、"Jenkinsfile"を追加してください。 ここで

  4. エラーメッセージを回避するために 'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>) というエラーメッセージを回避するために、Jenkinsfileの先頭にこの行を追加してください。

    // noinspection GroovyAssignabilityCheck