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

Jenkinsfile syntax highlighting in Java project using IntelliJ IDEA

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

在连续几天在网上搜索多个小时后,我们仍未找到有关此事的有用资源。因此,在这里提出一个新问题似乎是有意义的。

我们正在 IntelliJ idea 中开发我们的 Java 项目,并希望将我们的构建与 Jenkins 集成。当我们在 Idea 中创建一个 Jenkinsfile 时,我们没有得到语法高亮或自动完成。由于我们是 Jenkins 的新手,这些功能对我们来说真的很有用。我们怎样才能让 Idea 更支持 Jenkinsfiles?

如果无法在 IntelliJ IDEA 中为 Jenkinsfile 获取语法高亮和自动完成功能,还有哪些编辑器可以提供帮助?


请注意:

IntelliJ IDEA 将 pipelinep 突出显示为错误。错误消息如下:

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

感谢您的帮助!

我们终于找到了一个适合我们的解决方案,并为 Idea 中正常的 Java 项目中存在的 Jenkinsfile 提供语法高亮和代码完成。 解决方案取自 here, (以及其他个人实验/研究)

  1. the Groovy Page and configure it on your Java project. For help on this see

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

  3. 将“Jenkinsfile”添加为 groovy 文件的有效文件名模式,如

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

    // 无检查 GroovyAssignabilityCheck

查看源码,好像COMMENTS没有定义(在代码中注释掉了)

STEP_KEY定义为:STEP_NAME="sh" | "parallel"

我不确定这个插件有更多功能,而且它已经 2 年没有更新了。

如果您希望 IDEA 将 Jenkinsfile 识别为 Groovy 文件,那么您可以将字符串 "Jenkinsfile" 添加为 [=30= 的有效文件名模式(通常包含文件结尾) ] 文件。这是受支持的 "out of the box",不需要任何额外的插件("Groovy" 插件除外,但它已经是 IDEA 的一部分)。

为此,请转到设置菜单,打开 "Editor" 项,然后打开 "File Types"。现在 select "Groovy" 在上面的列表中添加 "Jenkinsfile"。如果您想更灵活地处理以 Jenkinsfile 结尾的可选文件,您也可以使用像 "Jenkinsfile*" 这样的正则表达式。
该设置现在应如下所示:

您的示例现在在 IDEA 中看起来像这样(使用 Dracula 主题):

据我所知,IDEA 现在提供了语法高亮和自动完成功能。它在写作时建议现有 function/method 名称,但我不是 Groovy 开发人员,因此我无法判断是否缺少某些建议。

另一种选择是像这样在 Jenkinsfile 之上使用 shabang #!/usr/bin/env groovy。你也可以试试 gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij 但到目前为止它不支持声明式管道:https://issues.jenkins-ci.org/browse/JENKINS-40127

像这样使用 sh 错误应该会消失(对我有用)...

steps {
    sh """
        echo 'Hello, World!'
    """
}

如果你添加

#!groovy​

header 到你的 jenkinsfile 那么你应该在 IDE.

中得到 groovy 语法高亮

进入设置菜单,打开“编辑器”-->“文件类型”。现在 select “Groovy” 在上面的列表中添加 “.Jenkinsfile”。如果你想更灵活地处理以 Jenkinsfile 结尾的可选文件,你也可以使用像“.Jenkinsfile”这样的正则表达式。

Jenkinsfile 是一个类似于 groovy 的脚本,但通常 IntelliJ 将其映射到 TextMate 编辑器。

为此,请转到设置菜单,打开“编辑器”项,然后打开“文件类型”。现在 select 在上面的列表中添加“TextMate”并添加“Jenkinsfile”。如果您想更灵活地处理以 Jenkinsfile 结尾的可选文件,您也可以使用像“Jenkinsfile*”这样的正则表达式。