首页 > 其他分享 >Jenkins实践指南-02-Groovy基础知识01

Jenkins实践指南-02-Groovy基础知识01

时间:2022-12-06 23:14:00浏览次数:63  
标签:02 Groovy 01 name 示例 Surpassme Surpass def

2. Groovy 基础知识

    [作者:Surpassme]  因为pipeline是基于Groovy的,所以还是需要一些基础的Groovy知识的。

2.1 Groovy 简介

    [作者:Surpassme]  Groovy 是Apache旗下的一门基于JVM平台的动态/敏捷编程语言。语法简洁灵活,开发效率也比较高,且能够与Java语言无缝对接,可以在写Groovy时语法按Java的语法继续写,也能在Java中调用Groovy脚本,均可以很好运行。

2.2 Groovy 环境

    [作者:Surpassme]  Groovy是基于JVM的,所以安装Groovy,需要准备好JDK环境。这里假设大家已经提前准备好JDK环境,仅讲述Groovy环境的准备。操作步骤如下所示:

D:\Program Files\Groovy
  • 3.设置环境,主要环境变量如下所示:
:: 新增以下环境变量
GROOVY_HOME="D:\Program Files\Groovy"
:: Path追加以下环境变量
%GROOVY_HOME%\bin
  • 4.重新打开一个新的窗口,验证配置是否成功
C:\Users\Surpass>groovy -version
Groovy Version: 4.0.5 JVM: 17.0.1 Vendor: Oracle Corporation OS: Windows 10
  • 若能正常输出版本信息,则代表安装成功。
  • Jenkins 2.x 目前使用的Groovy 版本为2.x,基础的语法应该是一样的,大家可以根据自己的实际情况选择对应的版本学习

2.3 Groovy IDE

    [作者:Surpassme]  Groovy 支持的工具如下所示:

以下信息来自于Groovy 官网:http://groovy-lang.org/ides.html

    除了以下的IDE工具,也可以使用自带的工具来进行简单的代码编写,如下所示:

  • 使用Groovysh,按以下操作即可:

  • 使用GroovyConsole,按以下操作即可:

2.4 Groovy 基础知识

2.4.1 注释

  • 1.单行注释

    [作者:Surpassme]  单行注释使用//,示例如下所示:

// 单行注释示例
println "Hello,Surpass"
println "Hello,Surpass"  // 单行注释示例
  • 2.多行注释

    [作者:Surpassme]  多行注释以/*开始,以*/结束。示例如下所示:

/* 多行注释示例
   多行注释示例 */
println "Hello,Surpass" /* 多行注释示例
                       多行注释示例 */
println 1 /* one */ + 2 /* two*/
  • 3.文档注释

    [作者:Surpassme]  文档注释与多行注释非常像,主要区别是以/**开始,以*/结束,中间每一行以*开头。示例如下所示:

/**
*文档注释
*/
class Person {
    /** 姓名*/
    String name="Surpass"
    /**
     * 创建一个吃东西的方法
     *
     * @param 食物的名称
     * @return 喜欢吃的食物的消息
     */
    String eat(String foodName){
        return "Hello ${name},I like eat ${foodName}"
    }
}
  • 4. Shebang 行

    [作者:Surpassme]  与Shell类似,有一单行注释比较特殊,称为为Shebang,在Groovy脚本中,以#!开始的行。示例如下所示:

#!/usr/bin/env groovy

println "Hello,Surpass"

2.4.2 关键字

    [作者:Surpassme]  Groovy 主要关键字如下所示:

abstract  assert     break	case	catch	class
continue  def	     default	else	finally	for
if	  instanceof switch	throw   try	while
class	  import     package	return	in	as

2.4.3 变量

2.4.3.1 变量命名

2.4.3.1.1 常规命名

    [作者:Surpassme]  在Groovy中,变量命名通常遵循如下规则:

  • 通常以字母$下划线开头,但不能以数字开头

    以下为合法的变量命名:

def surpass
def surpass8
def _suprass
def $surpass

    以下为非法的变更命名:

def 8surpass
def hello+surpass
def hello#surpass
2.4.3.1.2 引号命名

    [作者:Surpassme]  引号命名通常出现.表达式之后,通常应用在一些变量带有特殊字符的命名中。示例如下所示:

def map=[:]
def name="Surpass"
map."my name"="Surpass"
map.'my-name'="Surpass"
map."variable-name-${name}"="Hello ${name}"

assert map."my name"=="Surpass"
assert map.'my-name'=="Surpass"
assert map."variable-name-Surpass"=="Hello Surpass"
println "map is ${map}"

    输出结果如下所示:

map is [my name:Surpass, my-name:Surpass, variable-name-Surpass:Hello Surpass]

2.4.3.2 变量赋值

    [作者:Surpassme]  在Groovy中主要的变量赋值方式如下所示:

2.4.3.2.1 常规赋值

    常规赋值,示例如下所示:

// 定义并赋值
def name="Surpass"
// 先定义再赋值
def age
age=28
println "name is ${name}\nage is ${age}"
2.4.3.2.2 多变量赋值

    [作者:Surpassme]  Groovy支持一次性给多个变量赋值,示例如下所示:

// 方式一
def (name,age,loc)=["Surpass",28,"Shanghai"]
println "name is ${name},age is ${age},loc is ${loc}"  // name is Surpass,age is 28,loc is Shanghai
// 方式二
def hello="Hello,Surpass,Welcome to Shanghai"
def (_,name,welcome)=hello.split(",")
println "name is ${name},welocme is ${welcome}" // name is Surpass,welocme is Welcome to Shanghai
// 方式三
def (name,age)=["Surpass",28,"Shanghai","Wuhan"]
println "name is ${name},age is ${age}" // name is Surpass,age is 28

原文地址:https://www.jianshu.com/p/870a6921f7e3

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

标签:02,Groovy,01,name,示例,Surpassme,Surpass,def
From: https://www.cnblogs.com/surpassme/p/16961710.html

相关文章

  • 300017 广联达的导航树
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='广联达的导航树......
  • 300016 轴网与上开下开和左进右进
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='轴网与上开下开......
  • day33-JSON&Ajax01
    JSON&Ajax01JSON在线文档AJAX在线文档1.JSON介绍JSON指的是JavaScript对象表示法(JavaScriptObjectNotation),JSON的本质仍然是JavaScript对象JSON是轻量......
  • 20221206_每日学习记录
    20221206今天看了刘永鑫写的ImageGP包的代码和网站,感觉做的不错.代码是使用bash调用R的,可以学习一下,下面的操作地址是这里usage(){.....#......
  • 【译】Desmond2022-4_7分析Desmond模拟
    您可以用几种方法来分析Desmond模拟。有些分析可以在任何分子动力学模拟上进行,有些则只能在特定类型的模拟上进行。要以电影形式播放轨迹,提取快照,并进行交互式分析,请使用......
  • 【译】Desmond2022-4_6含膜模型系统的弛豫
    对含有膜的系统的模拟需要一些特殊的考虑。这是因为目前几乎所有存在的全原子膜势模型,在模拟纯膜时,在几十纳秒的时间尺度上都不能保持适当的表面积。如果非脂质成分占了膜......
  • 015.3MyBatis动态SQL(多条件复合查询)
    1.goods.xml<selectid="dynamicSQL"parameterType="java.util.Map"resultType="com.imooc.mybatis.entity.Goods">select*fromt_goods<where>......
  • 014.MyBatis日志管理
    1.SLF4j与Logback  2.Logback的使用2.1pom.xml<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</......
  • 【2022-12-06】爬虫从入门到入狱(三)
    1bs4搜索文档树frombs4importBeautifulSouphtml_doc="""<html><head><title>TheDormouse'sstory</title></head><body><pid="myp"class="title">asdfasdf......
  • 【2022-12-06】爬虫从入门到入狱(四)
    1xpath的使用#html中选择标签,可以使用的通用方式 css选择xpath选择 XPath即为XML路径语言(XMLPathLanguage),它是一种用来确定XML文档中某部分位置的语言......