我们已经尝试过以下方法:
在多天搜索网络了好几个小时后,我们仍未找到有关这方面的有用资源。因此,在这里提出一个新问题似乎是有意义的。
我们正在开发IntelliJ创意的Java项目,并希望将我们的构建与Jenkins集成。当我们在Idea中创建Jenkins文件时,我们不会获得语法突出显示或自动完成。由于我们是Jenkins的新手,这些功能对我们非常有用。我们如何才能让Jenkinsfiles更加支持Idea?
如果无法在想法中获得Jenkins文件的语法突出显示和自动完成功能,那么其他编辑器会有什么帮助?
请注意:
我们已经尝试过插件https://github.com/oliverlockwood/jenkinsfile-idea-plugin。当插件被激活时,Jenkins文件被识别为,但是语法高亮显示我们收到错误消息,请参见下文。
pipeline {
agent { docker 'maven:3.3.3' }
stages {
stage('build') {
steps {
sh 'echo Hello, World!'
}
}
}
}
Idea强调'管道'的'p'为错误。错误消息显示为:
JenkinsTokenType.COMMENT,JenkinsTokenType.CRLF或JenkinsTokenType.STEP_KEY预期,获得'p'
感谢您的帮助!
答案 0 :(得分:130)
如果您希望IDEA将Jenkins文件识别为Groovy文件,则可以将字符串“Jenkinsfile”添加为Groovy文件的有效文件名模式(通常包含文件结尾)。这是“开箱即用”支持,不需要任何额外的插件(“Groovy”插件除外,但它已经是IDEA的一部分)。
要执行此操作,请转到设置菜单,打开“编辑器”项,然后打开“文件类型”。现在在上面的列表中选择“Groovy”并添加“Jenkinsfile”。如果你想更灵活地使用Jenkins文件的可选文件,你也可以使用像“Jenkinsfile *”这样的正则表达式。
该设置现在应如下所示:
您的示例现在在IDEA(具有Dracula主题)中看起来像这样:
因此,就我所知,IDEA现在提供语法高亮和自动完成功能。它在写作时建议现有的函数/方法名称,但我不是Groovy开发人员,因此我无法判断是否缺少某些建议。
答案 1 :(得分:4)
Another option is to use a shabang on top of the Jenkinsfile like this #!/usr/bin/env groovy
. Also you can try out gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
but so far it doesn't support declarative pipelines: https://issues.jenkins-ci.org/browse/JENKINS-40127
答案 2 :(得分:2)
如果添加
#!groovy
指向您的jenkinsfile的标题,那么您应该在IDE中突出显示常规的语法。
答案 3 :(得分:1)
以下是我们从 IntelliJ 获得的反馈。如果我们能够提供可行的解决方案,我们将对此进行跟进。
Andrey Dernov,IntelliJ,12月14日,07:50 CET
Hello Georg,没有特殊的编辑器智能感知支持在IDE中编辑Jenkinsfiles。您需要为此编写自定义语言插件。
或者您可以考虑通过编写Kotlin DSL来实现此类支持。一些例子开始。
答案 4 :(得分:1)
查看源代码,看起来没有定义COMMENTS(它们在代码中被注释掉)
STEP_KEY定义为:STEP_NAME =“sh”| “平行”
我不确定这个插件做得多多,并且在2年内没有更新。
答案 5 :(得分:-4)
像这样使用sh
,错误应该消失了(对我有用)...
steps {
sh """
echo 'Hello, World!'
"""
}