1 - Groovy簡介
基於JVM的輕量級動態類型語言。
在一些工具DSL, Gradle或是與Java的混合編程中用到,Jenkins中也大量用到,用於編寫配置文件。
- 官網: http://www.groovy-lang.org/
- 文檔: http://www.groovy-lang.org/documentation.html
- 語法: http://www.groovy-lang.org/syntax.html
Tutorial
- Groovy腳本基礎全攻略: https://www.jianshu.com/p/fbfaaecc19ee
- Groovy 教程: https://www.w3cschool.cn/groovy
2 - 在Windows10上配置Groovy環境
2.1 安裝JDK
下載OpenJDK的zip 包並解壓到指定目錄
- https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/
- https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/windows/
- https://mirrors.huaweicloud.com/openjdk/
新建環境變量JAVA_HOME,變量值為zip包解壓后的路徑
添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
到環境變量PATH
在命令行執行java -version
和javac -version
驗證,能夠獲得版本號,無報錯信息則證明配置完成。
2.2 安裝Groovy SDK
下載Groovy SDK的zip包並解壓到指定目錄
- https://groovy.apache.org/download.html
- https://archive.apache.org/dist/groovy/
- https://mirrors.tuna.tsinghua.edu.cn/apache/groovy/
配置groovy的環境變量GROOVY_PATH,變量值為zip包解壓后的路徑
添加%GROOVY_HOME%\bin
到環境變量PATH
在命令行執行groovy -version
,能夠獲得版本號,無報錯信息則證明配置完成。
2.3 Groovy自帶的編輯器
在命令行下執行groovyconsole命令會啟動自帶的編輯器,適合學習和簡單場景
2.4 VS Code與Groovy
先安裝code-groovy插件 code-groovy:Better groovy support for VSCode
再安裝Code Runner插件 Code Runner:Run code snippet or code file for multiple languages and custom command
其他插件
- Jenkins Pipeline Linter Connector --- validates Jenkinsfiles by sending them to the Pipeline Linter of a Jenkins server
- JenkinsFile Support --- This extension adds syntax highlighting support for Jenkinsfile's
- Groovy Lint, Format and Fix --- Lint, format and auto-fix groovy and Jenkinsfile
- Jenkins Doc --- Provides Jenkins documentation and autocompletion on Jenkinsfile and Groovy files
2.5 使用Intellij IDEA安裝groovy插件進行groovy開發
https://www.jetbrains.com/help/idea/groovy.html
例如,
- 新建一個Project,選擇Groovy,指定Project SDK和Groovy library
- 指定項目名,然后選擇src目錄, 右鍵新建一個Groovy文件,選擇Groovy Script並指定文件名
- 在Groovy Script文件填寫
pritnln "Hello Groovy"
, CTRL + SHIFT + F10運行。
3 - 編寫與驗證
3.1 Jenkins Web Pipeline
簡單的Jenkinsfile,可以在 Jenkins Web Pipeline 頁面里編寫(自帶語法檢查)
3.2 pipeline-syntax
- https://www.jenkins.io/doc/
- https://www.jenkins.io/doc/pipeline/steps/
- https://www.jenkins.io/doc/book/pipeline/syntax/
Snippet Generator: https://<Jenkins server url>/pipeline-syntax/
3.3 本地格式化和驗證Jenkinsfile
為了避免開發Jenkins流水線開發時出現語法錯誤,可以通過VS code的插件來進行檢查。
Validate your Jenkinsfile from within VS Code: https://jenkins.io/blog/2018/11/07/Validate-Jenkinsfile/
可以將Visual Studio Code與Jenkins Pipeline Linter Connector插件一起使用,在VS Code中本地格式化和驗證Jenkinsfile。
需要在設置中指定插件的參數
- jenkins.pipeline.linter.connector.url
- jenkins.pipeline.linter.connector.user
- jenkins.pipeline.linter.connector.pass
- jenkins.pipeline.linter.connector.crumbUrl
注意:
- 請確認Jenkins啟用了“CSRF Protection”(Manage Jenkins -> Manage Configure Global Security 頁面)
- 實際上是利用Jenkins API進行語法格式校驗,並不能保證pipeline內容完全可用
示例:
https://jenkins.ap.manulife.com/blueocean/
運行插件: 右鍵 -> Command Palette -> Validate Jenkinsfile 或 執行快捷鍵 Shift + Alt + V
4 - 參考信息
- IntelliJ IDEA:使用Groovy: https://www.w3cschool.cn/intellij_idea_doc/intellij_idea_doc-d7pv2u4w.html
- 基於IntelliJ IDEA創建第一個Groovy工程: https://www.cnblogs.com/taoweizhong/p/10991434.html
- https://stackoverflow.com/questions/52430027/compile-groovy-in-vscode
5 - Tips
1 - Groovy代碼的格式化方法
- VScode:設置文件類型綁定,將.groovy后綴文件識別為.js,然后“格式化文檔”, 可以格式化縮進
- IntelliJ IDEA:支持Groovy的代碼補全、語法和錯誤高亮、代格式化與檢查、重構與調試
指定文件類型綁定
https://code.visualstudio.com/docs/languages/overview#_adding-a-file-extension-to-a-language