使用Intellij Idea在Java项目中突出显示Jenkinsfile语法

rex*_*ord 76 java autocomplete syntax-highlighting intellij-idea jenkins

我们已经尝试过如下所示的方法:

在多天搜索网络了好几个小时之后,我们仍然没有找到有关这方面的有用资源.因此,在这里提出一个新问题似乎是有道理的.

我们正在开发IntelliJ想法中的Java项目,并希望将我们的构建与Jenkins集成.当我们在Idea中创建Jenkins文件时,我们不会获得语法突出显示或自动完成.由于我们是Jenkins的新手,这些功能对我们非常有用.我们怎样才能让Idea更加支持Jenkinsfiles?

如果没有办法在想法中获得Jenkins文件的语法高亮和自动完成,那么其他编辑器会有什么帮助?

请注意:

  • 我们正在使用java项目,而不是groovy项目.
  • 我们已经尝试过插件https://github.com/oliverlockwood/jenkinsfile-idea-plugin.当插件被激活时,Jenkins文件被识别为,但是语法高亮显示我们收到错误消息,请参阅下文.

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

    Idea强调'管道'的'p'为错误.错误消息显示:

    JenkinsTokenType.COMMENT,JenkinsTokenType.CRLF或JenkinsTokenType.STEP_KEY预期,获得'p'

谢谢你的帮助!

Tom*_*Tom 174

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

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

您的示例现在在IDEA(具有Dracula主题)中看起来像这样: Jenkinsfile语法高亮

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

  • 人们想要的功能包括[GDSL](https://gist.github.com/arehmandev/736daba40a3e1ef1fbe939c6674d7da8)的验证/自动完成/ quickdocs以及[linter]的整合(https://jenkins.io/doc/book /管道/开发/#棉短绒).一个理想的插件可以使所有东西"正常工作",配置最少(例如,只需将它指向Jenkins实例). (6认同)
  • 这是一个好主意,但需要配置 Groovy SDK (3认同)
  • 请注意,groovy文件类型仅在InteliJ和Android studio中可用,*在PyCharm 2018.3.2中不可用。我认为是因为此插件是必需的https://plugins.jetbrains.com/plugin/1524-jetgroovy (2认同)

rex*_*ord 8

终于,我们找到了一个对我们有用的解决方案,并为 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. 为避免出现错误消息'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>),您可以在 Jenkinsfile 的顶部添加以下行:

    // 不检查 GroovyAssignabilityCheck


小智 8

如果添加

#!groovy?
Run Code Online (Sandbox Code Playgroud)

标题到您的 jenkinsfile 那么您应该在 IDE 中获得 groovy 语法突出显示。


fut*_*has 5

另一个选择是像这样在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


小智 5

转到设置菜单,打开“编辑器”-->“文件类型”。现在在上方列表中选择“Groovy”并添加“ .Jenkinsfile”。如果您想更灵活地处理以 Jenkinsfile 结尾的可选文件, 您还可以使用“.Jenkinsfile”之类的正则表达式。在此输入图像描述

在此输入图像描述