我们已经尝试了下面列出的方法:
- https://github.com/oliverlockwood/jenkinsfile-idea-plugin
- https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij的
在网上搜索了几天之后,我们仍然没有找到关于这个问题的有用资源。因此,在这里提出一个新问题似乎是有意义的。
我们正在使用IntelliJ idea开发我们的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将pipeline
的p
突出显示为错误。错误消息如下:
JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF or
JenkinsTokenType.STEP_KEY expected, got 'p'
型
感谢您的任何帮助!
8条答案
按热度按时间a9wyjsp71#
如果您希望IDEA将Jenkinsfile识别为Groovy文件,则可以添加字符串“Jenkinsfile”作为Groovy文件的有效文件名模式(通常包含文件结尾)。这是“开箱即用”支持的,无需任何额外的插件(除了“Groovy”插件,但它已经是IDEA的一部分)。
要做到这一点,请转到设置菜单,打开“编辑器”项,然后打开“文件类型”。现在在上面的列表中选择“Groovy”并添加“Jenkinsfile”。如果你想更灵活地选择Jenkinsfile的可选文件结尾,你也可以使用“Jenkinsfile*”这样的正则表达式。
设置现在应该如下所示:x1c 0d1x
您的示例现在在IDEA中看起来像这样(带有Dracula主题):
所以IDEA现在提供了语法高亮和自动完成功能,它在编写时建议现有的函数/方法名称,但我不是Groovy开发人员,因此我无法判断是否缺少了一些建议。
mi7gmzs62#
最后,我们找到了一个适合我们的解决方案,它为Idea中的一个普通Java项目中的Jenkinsfile提供了语法突出显示和代码完成。该解决方案来自here,here(以及额外的个人实验/研究)
1.从the Groovy Page下载Groovy SDK(如果您还没有这样做),并在Java项目上配置它。
1.从您的Jenkins示例下载管道GDSL文件,该文件应该可以在https://yourJenkinsInstance.tld/pipeline-syntax/gdsl这样的链接下获得,并将其添加到Java项目的类路径中。例如,通过创建一个新的文件夹src/main/jenkins,将管道GDSL文件放在那里,并将该文件夹标记为IntelliJ IDEA中的源根目录。**确保文件扩展名为
.gdsl
,而不是.groovy
。**否则,代码完成将不起作用。1.添加“Jenkinsfile”作为groovy文件的有效文件名模式,如here所述
1.为了避免出现错误消息
'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>)
,您可以在Jenkins文件的顶部添加以下行:wtlkbnrh3#
如果添加
字符串
header到你的jenkinsfile,那么你应该在IDE中获得groovy语法高亮。
7d7tgy0s4#
另一种选择是在Jenkins文件的顶部使用shabang,如
#!/usr/bin/env groovy
。你也可以尝试gstrom:https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij,但到目前为止它不支持声明性管道:https://issues.jenkins-ci.org/browse/JENKINS-40127dldeef675#
进入设置菜单,打开“编辑器”-->“文件类型”。现在在上面的列表中选择“Groovy”并添加“.Jenkinsfile”。如果你想更灵活地选择Jenkinsfile的可选文件结尾,你也可以使用“.Jenkinsfile”这样的正则表达式。x1c 0d1x
的
yhuiod9q6#
Jenkinsfile是一个类似于groovy的脚本,但通常IntelliJ会将其Map到 TextMate 编辑器。
要做到这一点,进入设置菜单,打开“编辑器”项,然后“文件类型”。现在选择“TextMate”在上面的列表中,并添加“Jenkinsfile”。如果你想更灵活地选择Jenkinsfile的可选文件结尾,你也可以使用像“Jenkinsfile*”这样的正则表达式。
waxmsbnn7#
查看源代码,似乎没有定义
COMMENTS
(它们在代码中被注解掉)STEP_KEY
定义为:STEP_NAME="sh" | "parallel"
我不确定插件做得更多,它没有被更新在2年.
23c0lvtd8#
像这样使用
sh
,错误应该会消失(对我有用)。字符串