00:04
呃,大家好,今天我们开始讨论插件的开发。众所周知,是一个功能非常强大的CCD构建工具,而它强大的功能就正是依托于非常易于扩展的插件机制来实现的。通过编写插件,我们可以很容易的扩展和改变各个方面的行为。例如说可以实现get代码拉取支持啊,SVN代码拉取的支持,又或者是修改GI拉取代码式的行为,又或者是可以实现一个新的构建步骤,比如说可以解析单元测试覆盖率的结果,并且在UI上生成图表来展示。甚至说我们可以实现一个新的流水线的类型。呃,我们刚刚说这一切都是可以通过插件机制来实现的。嗯,在这个视频中,我们会介绍如何来实现一个简单的插件。嗯,那么我们开始吧,嗯,首先是这个插件开发的准备。嗯嗯。是基于Java实现的,因此我们本地需要安装JDK,呃,并且版本最低为八。
01:04
同时呢,大部分精定插件都是使用Marvin作为它的项目管理工具,因此在校程中我们也会使用。呃,Mar文。呃,我们所需的最低版本是3.3.9或者更新的。只要你的本地开发环境满足上面两个条件,那么你就可以开始建立插件的开发了。呃,G提供了呃一系列并列便捷的工具,帮我们快速上手插件的开发。嗯,我们可以在这边看到。呃,我们可以这边看到呃金S提供了呃一系列的妈项目模板,他们可以帮助我们快速的创创建一个插件的项目。我们复制这条命令,然后打开终端。那么运行命令。嗯,稍等一下,我们可以看到这个返回的镜子项目模板的。
02:01
结果。呃,大家可以看到运行完这个命令之后呢,嗯,列出了这么几个项目模板。经典插件项模板供我们选择,在这里我们选择四,也就是hello word插件。然后呢,我们这边选择最新的版本1.8。呃,这边ID我们随便输入,因为我们是测试的。就叫他吧。OK。之后我们便可以看到在当前目录下生成了一个这个新的文件夹。这个就是依据项目模板和我们输入的参数来创建的一个,呃。Hello,查询项目,OK,我们进这个目录看一下它的具体结构。在ID,在IDE里打开它。OK,呃,这里我们可以看到,就是我们已经成功创建出了一个呃,一种模板,成功创建出了一个插件的项目了。
03:07
然后呢,嗯。Hello word这个模板会生成一个呃,实现了一个新的构建步骤的一个流行插件,这个新的构建步骤很简单,就是在执行记录的日志页面输出你填入的字符串,并且它会在你的输入的字符串前面加hello,也就它就像hello word这种类型的这个测试项目啊。呃,这里我们先实际运行一下这个插件,看一下效果,之后呢,我们会简单看一下这个插件的项目结构,然后并对它进行一些修改。首先我们可以在本地呃。运行调试一下这个插件。呃,通过金提供的一个叫ma HP插件。一个叫妈妈HPI的插件。我们可以在本地快速的。对插件进行运行和调试。嗯,输入了这个命令之后呢,我们在本地会启动一个安装了这个。
04:01
插件和它所依赖的所有插件的一个Jenkins。OK,我们稍等一下。呃,现在这个精已经启动了,我们可以在本地打开它。嗯。OK,今天正在启动。
05:09
嗯,略慢呢。OK,现在已经启动了,呃。我们可以在我们首先创建一个新的这个留学线项目。我们可以在这个freestyle project和这个pipeline。线中使用我们刚刚创建出的这个RA这个插件,首先我们先在free style project里试一试。OK,我们已经创建了一个freestyle的一个job。在这边,我们在build这一栏中可以选择。然后可以看到我们这个一个叫c hello word一个选项,点开这个对应的就是我们刚刚生成的插件,呃,这里面我们随便输入一个名字吧,就for。
06:06
最后保存配置配置。然后呢,我们可以运行一下六线。在这个流水线新记录的日志页面中,我们可以看到。他付出了我们。它打印了,我们打印了一个hello for输出。之后我们再在这个papeline中使用一下这个。新的构建步骤。同样因为item,我们创建一个开流水线。OK,保存。嗯,我们在这个拍这个页面中生成我们需要的脚本,大家可以看到在这边有个里面选择。
07:01
选择。嗯。Great。这边可以看到我们生成的一个,也可以看到我们那个生成的那个固定步骤的插件,同样输入板点击generate。我可以复制这个生成的内容之后在这边。OK,加上我们这个刚刚生成脚本,点击保存。同样我们现在运行一下流水线。我可以在执行记录中,我们也可以看到这个hello for这一条输出。嗯,OK,大家可以看到我们通过呃,那个项目模板和输入参数创创建出的插件是怎么在经历中被使用的。接下来我们会简单讲解一下这个生成的这个插件的项目结构,然后呢,呃,进行一些很小的修改,然后再看一下它的变化。
08:05
OK,我们回到这个ID页面。呃,我们可以看到这个。项目的一个整体的一个结构。首先是它的呃po文件破文件里就是定义的这个插件所需要的依赖,然后以及呃,它所需的这个精子的最低版本,还有他用的这个Java的版本,然后还有一些其他的一些配置,然后呢,它自动生成的时候,还会生成一些版,帮我们生成一些略密啊这个。License啊,还有这个构建插件用这个,这个是由官方来封装的一个这个DL。具体的时间点大家有兴趣可以自己上他们。对应,咱们同去看一看,OK。在这个src目录底下,呃。这里包含了。我们的生成的一个Java的源代码,然后在resource这个目录一下,包含了这个项目所需的各个的资源的文件,然后以及实现插件UI的一些接理的文件,比如这个conflict点接,呃,接理是什么的话,这边我们就不细说了,大家可以有兴趣的话,呃,自己搜索一下,就是他是大概是干啥的。
09:20
然后呢,大家可以看到哈,这边有个index,点这边的话,其实是对应的我们插件的一个,呃,描述页面。当我们在打开精粒子插件的一个管理中心的时候,可以看到不同插件有。对应的描述,通过修改这些内容,我们就可以修改这个插件的那个管理页面。是这个插。插件的管理里面这个插件的描述,呃,这个我们现在先不看效果,待会儿我们最后。再一起看一下我们修改的结果,OK。我们现在先看一下这个深层的一个。这个交流的嘛。
10:01
呃,我们可以看到哈,就是使用hello这个插件。模板的时候,它会帮我们自动生成一个叫Hollywood builder的一个类,呃,这个类呢,它继承了这个build,同时也实现了这个simple build,嗯。然后呢,这个类中还包含一个这个静态类,就是一个。MPL这个类,然后呢,他是实现,呃,继承了build,然后呢,大家不要着急,后面我会简单介绍一下他哥哥是干啥的。
我来说两句