我们已经尝试了下面列出的方法:
- 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 将 p
的 pipeline
突出显示为错误。错误消息如下:
JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF or JenkinsTokenType.STEP_KEY expected, got 'p'
谢谢你的帮助!
原文由 rexford 发布,翻译遵循 CC BY-SA 4.0 许可协议
终于,我们找到了一个适合我们的解决方案,它为 Idea 中的一个正常 Java 项目中存在的 Jenkinsfile 提供语法高亮和代码完成。解决方案取自 此处, 此处(以及其他个人实验/研究)
从 Groovy 页面 下载 Groovy SDK(如果您尚未下载)并在您的 Java 项目中配置它。如需这方面的帮助,请参见 此处
从您的 Jenkins 实例下载流水线 GDSL 文件,该文件应可在 https://yourJenkinsInstance.tld/pipeline-syntax/gdsl 等链接下找到,并将其添加到您的 Java 项目的类路径中。例如,通过创建一个新文件夹 src/main/jenkins,将管道 gdsl 文件放在那里并将该文件夹标记为 IntelliJ Idea 中的源根目录
添加“Jenkinsfile”作为 groovy 文件的有效文件名模式,如此 处 所述
为避免错误消息
'node' cannot be applied to '(groovy.lang.Closure<java.lang.Object>)
,您可以在 Jenkinsfile 的顶部添加此行:// 不检查 GroovyAssignabilityCheck