什么是 Groovy

什么是 Groovy,第1张

● 是一个基于 Java虚拟机的敏捷 动态语言。● 构建在强大的Java语言之上 并 添加了从Python,Ruby和Smalltalk等语言中学到的 诸多特征。●为Java开发者提供了 现代最流行的编程语言特性,而且学习成本很低(几乎为零)。● 支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让你的代码变得易于阅读和维护。● Groovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变的非常简单。● 在开发Web,GUI,数据库或控制台程序时 通过 减少框架性代码 大大提高了开发者的效率。● 支持单元测试和模拟(对象),可以 简化测试。● 无缝集成 所有已经存在的 Java对象和类库。● 直接编译成Java字节码,这样可以在任何使用Java的地方 使用Groovy。Groovy 的一个好处是,它的语法与 Java 语言的语法很相似。虽然 Groovy 的语法源于 Smalltalk 和 Ruby 这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。(在这点上,Ruby 与 Groovy 不同,因为它的语法与 Java 语则历槐法差异很大。)Groovy 快捷方式 开始使用 Groovy 时,您会发现它使日常的编程活动变得快了许多。完成本教程之后,您会了解更多的 Groovy 语法快捷方式。不过现在只需知道以下这些要点:Groovy 的松散的 Java 语法允许省略分号和修改符。除非另行指定,Groovy 的所有内容都为 public。Groovy 允许定义简单脚本,同时无需定义正规的class 对象。Groovy 在普通的常用 Java 对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。Groovy 语法还允许省略变量类型。Groovy 的新增特性 虽然Groovy 允许省略 Java 语法中孙友的一些元素,但也增加了一些新特性,例如本地集合、内置的正则表达式和闭包。在标准的 Java 代码中,如果想要创建一个项列表,首先要导入<code>java.util.ArrayList</code>,然后程序化地初始化 <code>ArrayList</code>实例,然后 再向实例中添加项。在 Groovy 中,列表和映射都内置在语法中 — 无需导入任何内容。正则表达式也不需要额外的导入或对象;它们可以通过特殊的 Groovy 语法来创建。关于闭包 对于任何 Java 开发人员来说,闭包都是一个令人兴奋的新技巧。这些神奇的构造将会包含在未来的 Java 发行版(很可能是 Java 7)中,成为正式的 Java 语法,但现在已经可以在 Groovy 中使用了。可以将闭包 想像为一个代码块,可以现在定义,以后再执行。可以使用这些强大的构造做许多漂亮的事,不过最著名的是简化迭代。使用 Groovy 之后,就有可能再也不需要编写Iterator 实例了。动态的 Groovy 从技术上讲,Groovy 可能是您最近听说过的类型最松散的动态语言之一。从这个角度讲,Groovy 与 Java 语言的区别很大,Java 语言是一种固定类型语言。在 Groovy 中,类型是可选的,所以您不必输入String myStr = "Hello"来声明 String 变量,可以使用def myStr = "Hello"(分号可有可无)。除此之外,Groovy 代码还能在运行时轻松地改变自己。这实际上意味着,能够在运行时轻松地为对象指定新方法和属性。这一编程领域称为元编程,Groovy 能够很好地支持这种编程方式。在学习本教程的过程中,您将了解到关于 Groovy 的动态性质的更多内容。现在惟一要补充的是,您会惊讶地发现,在 Groovy 会使 *** 作 XML 或普通的 java.io.File 实例变得非常轻松。一体两面 用Groovy 编写的任何内容都可以编译成标准的 Java 类文件并在 Java 代码中重用。类似地,用标烂州准 Java 代码编写的内容也可以在 Groovy 中重用。所以,可以轻易地使用 Groovy 为 Java 代码编写单元测试。而且,如果用 Groovy 编写一个方便的小工具,那么也可以在 Java 程序中使用这个小工具。Groovy是用Java实现的开源脚本语言并且和它联系紧密.它需要JDK 1.4. Groovy向Java添加了许多Ruby和Python脚本语言的特性. Groovy的特性包括动态类型(dynamic typing), 闭包(closures),简单对象导航( easy object navigation)和更加简洁的Lists和Maps语法.Groovy是由James Strachan和Bob McWhirter创造的. James还参与了许多其他开源项目的开发,其中包括Jelly, dom4j, Jaxen, Betwixt和Maven. Bob是Jaxen和Drools (一个开源的面向对象的JAVA规则引擎) 的创始人.目前最新稳定版为Groovy1.8。

关于Jenkins的搭建,本文不再赘述,参考 https://www.jenkins.io/doc/book/installing/ 进行部署。

1、使用docker部署minio

访问minio控制台( http://192.168.116.128:9002/login )

2、创建bucket

创建名为jenkins-backup的存储桶。

1、部署kopia

2、创建repository

执行以上命令,并根据提示设置仓库密码。

按照提示执行 kopia repository validate-provider 进行验证。

3、使用命令 kopia repository status 查看存储库的状态

4、创建快照

接下来创建 jenkins_home 目录的快照: kopia snapshot create /var/jenkins_home

列出文件和目录的快照

5、回到Jenkins,运行几次任务,然后再次创建快照

此时,再次查看快照列表

6、可以通过 kopia diff 来获取两次快照肢颂的差异

7、前面是针对整个 jenkins_home 做的快照,但是有些目录不需要做快照,比如 .cache , .groovy , .java 等目录。

首先,查看当前的快照策略

接下来,设置忽略提及的几个目录

再次查看策略

通过 kopia policy list 可以查看策略列表:

四、定时创建快照

前面的内容,我们都是手动执行来进行备份。但在实际应用中,可以结合 crontab 设置定时任务来执行。

创建定时备份脚本 jenkins-kopia.sh

结合 crontab 配置定时任务,

五、从快照恢历运郑复jenkins

进入 jenkins_home ,删除目录内的所有文件,然后通过 kopia snapshot restore 进行恢复,恢悄巧复后运行Jenkins进行检查。

参考:

https://kopia.io/docs/installation/#linux-installation-using-rpm-redhat-centos-fedora

https://kopia.io/docs/repositories/#amazon-s3

参数说明

Jenkins是一种主从架构,有一个master和多个slave,master负责提供界面、处理HTTP请求及管理构建环境,汇总扒孝绝构建结果;slave是一个在远程机器上运行的Java可执行文件,构建的执行则由Jenkins slave负责。(master也可以执行构建 *** 作,默认executor数量为2个,表示能并行执行两个Job。)

• executor:执行器,是真正执行项目的单元。一个执行器可以被理解为一个单独的进程(事实上是线程)。在一个节点上可以运行多个执行器(添加节点的时候指定)。

• agent:代理,在概念上指的是春姿相对于Jenkins master的一种角色,实际上是慎毕指运行在机器或容器中的一个程序,它会连接上Jenkins master,并执行Jenkins master分配给它的任务。

通过上面方法启动的容器,只要定时打包备份 /root/jenkins 目录就可以了。升级Jenkins版本时,直接使用该目录,使用新镜像重新启动容器就可以了。

通过 executors.groovy groovy脚本文件,重新打包镜像,可以修改executor的数量,如调整为5个。

Dockerfile


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12297349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存