首页 > 其他分享 >Groovy学习

Groovy学习

时间:2023-12-06 17:26:36浏览次数:26  
标签:Groovy info name currentBuild dev 学习 user println

一、数据类型

下面的是内置数据类型,一旦定义后无法修改变量类型

1 byte -这是用来表示字节值。例如2。
2 short -这是用来表示一个短整型。例如10。
3 int -这是用来表示整数。例如1234。
4 long -这是用来表示一个长整型。例如10000090。
5 float -这是用来表示32位浮点数。例如12.34。
6 double -这是用来表示64位浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.3456565。
7 char -这定义了单个字符文字。例如“A”。
8 Boolean -这表示一个布尔值,可以是true或false。
9 String -这些是以字符串的形式表示的文本。例如,“Hello World”。

def -- 定义任意变量类型的关键字

二、常用方法

 1 job_name = "devops05-app-service_CI"
 2 
 3 // ["devops05", "app", "service_CI"]
 4 bu_name = job_name.split('-')[0]
 5 println(bu_name)  //devops05
 6 // contains
 7 println(job_name.contains("CI")) //true
 8 
 9 //size/length
10 println("size: ${job_name.size()}")
11 println("length: ${job_name.length()}")
12 
13 //endsWith()
14 println("enswith CI: ${job_name.endsWith('CI')}") //true

//List tools = ["gitlab", "jenkins", "maven", "sonar"] pipeline { agent any stages{ stage("run"){ steps{ script{ // script println(tools) // add println(tools + "k8s") println(tools) println(tools << "ansible") //改变原对象 println(tools) println(tools - "maven") println(tools) tools.add("maven") println(tools) println(tools.getClass()) // contains println(tools.contains("jenkins")) // length println(tools.size()) // index println(tools[0]) println(tools[-1]) } } } } }

  

 

map

//Map
user_info = ["id": 100, "name": "jenkins"]

pipeline {
	agent any

	stages{
		stage("run"){
			steps{
				script{
					// script 
					println(user_info)

					// get name
					println(user_info["name"])
					println(user_info["id"])

					// = 
					user_info["name"] = "jenkinsX"
					println(user_info)

					// key
					println(user_info.containsKey("name"))
				    println(user_info.containsValue(100))

				    // keys
				    println(user_info.keySet()) 

				    // remove
				    user_info.remove("name")
				    println(user_info)

				}
			}
		}
	}
}

  

 三、条件语句

1.if/else

//if 
// dev == dev  stag == master
branchName = "dev"

pipeline {
	agent any

	stages{
		stage("run"){
			steps{
				script {
					// script
					currentBuild.displayName = branchName

					if ( branchName == "dev"){
						println("deploy to dev....")
						currentBuild.description = "deploy to dev...."

					} else if (branchName == "master"){
						println("deploy to stag....")
						currentBuild.description = "deploy to stag...."
					} else {
						currentBuild.description = "error..."
						println("error...")
					}
				}
			}
		}
	}
}

2.switch

//switch

// dev == dev  stag == master

branchName = "dev"


pipeline {
	agent any

	stages{
		stage("run"){
			steps{
				script {
					// script

					currentBuild.displayName = branchName

					switch(branchName) {
						case "dev":
							println("deploy to dev....")
							currentBuild.description = "deploy to dev...."	
							break

						case "master":
							println("deploy to stag....")
							currentBuild.description = "deploy to stag...."
							break

						default:
							currentBuild.description = "error..."
							println("error...")
							break

					}
				}
			}
		}
	}
}

  

  

 

标签:Groovy,info,name,currentBuild,dev,学习,user,println
From: https://www.cnblogs.com/dxtx/p/17879985.html

相关文章

  • 《Java编程思想第四版》学习笔记44--关于按钮组
    //:ButtonGroups.java//Usesreflectiontocreategroupsofdifferent//typesofAbstractButton.packagec13.swing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;importjava.lang.reflect.*;publicclassB......
  • 【机器学习】自动微分
    标量变量的反向传播以下举两个例子说明标量变量的反向传播如何实现。非标量变量的反向传播在上述的例子中,x是向量,而y是标量,这种类型为标量变量的反向传播。但当y不是标量时,比如y=x*x,当求向量y关于另一个向量x的导数时,结果通常就是一个矩阵,被称为雅可比矩阵,或......
  • linux学习-6
    文件共享1.FTP服务构建FTP服务是一种文件共享服务,依照FTP协议提供服务,默认使用端口20、21。其中端口20用于传输数据,端口21用于客户端发出相关的FTP指令。FTP协议有以下两种工作模式:①主动模式:FTP服务器主动向客户端发送连接请求。②被动模式:FTP的默认工作模式,FTP服务器等待......
  • Solidity基本概念学习2
    文档:https://solidity-by-example.org/视频教程:https://www.youtube.com/watch?v=xv9OmztShIw&list=PLO5VPQH6OWdVQwpQfw9rZ67O6Pjfo6q-p说明看视频没注意有文档,前面写了一篇好多废话,之后结合文档+视频去做笔记和写代码,做记录...常量(constant)常量是不能修改的......
  • Python学习前准备之MarkDown语法基础
    MarkDown基础语法[一]Typora(1)下载官网:Typora官方中文站(typoraio.cn)正版价格及介绍:89元/3台设备;89元三个设备码(重装系统设备码失效)绿色版:网盘链接[.\Typora\resources文件夹下替换(app.asar)](2)部分设置主题更改:Typora官方主题库下载完成后,解压压缩包后将.css......
  • Python学习前准备之Python环境安装和Pycharm使用
    【一】python解释器安装【1】Python官网https://www.python.org【2】Python各版本解释器官网https://www.python.org/downloads/【二】Windows系统安装Python解释器【1】下载Python版本解释器现在已经更新到了3.13版本的Python解释器,但是最新的解释器往往都会存在一......
  • 机器学习-逻辑回归:从技术原理到案例实战
    在本篇文章中,我们对逻辑回归这一经典的机器学习算法进行了全面而深入的探讨。从基础概念、数学原理,到使用Python和PyTorch进行的实战应用,本文旨在从多个角度展示逻辑回归的内在机制和实用性。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团......
  • 神经网络入门篇:深度学习和大脑的关联性(What does this have to do with the brain?)
    深度学习和大脑的关联性开始讲故事(手动狗头)深度学习和大脑有什么关联性吗?关联不大。那么为什么会说深度学习和大脑相关呢?当你在实现一个神经网络的时候,那些公式是你在做的东西,你会做前向传播、反向传播、梯度下降法,其实很难表述这些公式具体做了什么,深度学习像大脑这样的类......
  • 【Nginx40】Nginx学习:动静分离与日志分割
    Nginx学习:动静分离与日志分割放轻松放轻松,最后两篇文章学习的内容是比较轻松的。首先,我们来看看Nginx动静分离的概念,然后再看看怎么为Nginx做日志分割。内容都很简单,完全不需要有任何的压力。动静分离动静分离,听着高大上吧,而且也是面试中比较喜欢问的问题。简单来说,就是动态请......
  • 【Nginx39】Nginx学习:upstream服务器组模块
    Nginx学习:upstream服务器组模块最后一个重点模块内容啦,感谢坚持到现在的你和我。总算是向大佬的道路上又前进了一步了。今天的内容主要是服务器组的配置,其实更直白点,就是Nginx负载均衡的配置模块。会不会有小伙伴不明白负载均衡是啥?如果是新同学,还不明白的话,要自己查查资料补习一......