使用 IntelliJ IDEA 的 Java 项目中的 Jenkinsfile 语法突出显示

我们已经尝试了下面列出的方法:

在连续数天在网上搜索了数小时后,我们仍然没有找到有关此事的有用资源。因此,在这里提出一个新问题似乎是有道理的。

我们正在 IntelliJ 的理念中开发我们的 Java 项目,并希望将我们的构建版本与 Jenkins 集成。当我们在Idea中创建Jenkinsfile时,我们不会获得语法突出显示或自动完成。由于我们是 Jenkins 的新手,因此这些功能对我们非常有用。我们如何让 Idea 对 Jenkinsfiles 给予更多的支持?

如果无法在IntelliJ IDEA中获得Jenkinsfile的语法突出显示和自动完成,那么其他哪些编辑器会有所帮助?


请注意:

  • 我们正在使用Java项目,而不是Groovy项目。

  • 我们已经尝试了插件 https://github.com/oliverlockwood/jenkinsfile-idea-plugin。激活插件后,Jenkinsfile 会被识别为这样,但是我们收到的不是语法突出显示,而是错误消息,请参阅下文。

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

IntelliJ IDEA 突出显示了 作为错误。错误消息如下:ppipeline

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

感谢您的任何帮助!


答案 1

如果您希望 IDEA 将 Jenkinsfile 识别为 Groovy 文件,则可以添加字符串 “Jenkinsfile” 作为 Groovy 文件的有效文件名模式(通常包含文件结尾)。这是“开箱即用”支持的,不需要任何额外的插件(除了“Groovy”插件,但这已经是IDEA的一部分)。

为此,请转到设置菜单,打开“编辑器”项,然后打开“文件类型”。现在,在上方列表中选择“Groovy”并添加“Jenkinsfile”。您也可以使用像“Jenkinsfile*”这样的正则表达式,如果你想在 Jenkinsfile 的可选文件结尾方面更加灵活。
设置现在应如下所示:IDEA file type settings

您的示例现在在 IDEA 中如下所示(带有德古拉主题):Jenkinsfile syntax highlight

因此,据我所知,IDEA现在提供了语法突出显示和自动完成。它在编写时建议了现有的函数/方法名称,但我不是Groovy开发人员,因此我无法判断是否缺少一些建议。


答案 2

最后,我们找到了一个适合我们的解决方案,并为 Idea 中一个普通的 Java 项目中的 Jenkinsfile 提供了语法突出显示和代码完成。解决方案取自这里这里(以及其他个人实验/研究)

  1. 从Groovy页面下载Groovy SDK(如果您还没有这样做)并在Java项目上进行配置。有关这方面的帮助,请参阅此处

  2. 从 Jenkins 实例下载管道 GDSL 文件,该文件应在 https://yourJenkinsInstance.tld/pipeline-syntax/gdsl 等链接下可用,并将其添加到 Java 项目的类路径中。例如,通过创建一个新的文件夹src/main/jenkins,将管道gdsl文件放在那里,并在IntelliJ Idea中将该文件夹标记为源根目录。

  3. 添加“Jenkinsfile”作为时髦文件的有效文件名模式,如此处所述

  4. 要避免出现错误消息 ,您可以在 Jenkins 文件的顶部添加以下行:'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>)

    noinspection GroovyAssignabilityCheck


推荐