00:00
那前面我们这个参数啊,构建说完了以后呢,那接下来按照我们的管道流程,我们流水线流程,那接下来可以来到我们的单元测试,但我们现在呢,这个项目太大,我们所有的这个单元测试,我们都让它跳过,我们就不做了,然后呢,我们来做一个这个叫sona cube的代码质量分析,这个质量分析呢,我们看到这是又是一个阶段,Stage一个阶段,然后呢,这个阶段里边steps就定义我们现在要做的哪一步,然后呢,我们要做哪一步,就是这container container呢,这是我们的这个容器,我们在me这个容器里边,相当于我们就可以使用me的一些命令,所以我们这个container me里边,好,我们来开始运行这段代码,运行什么呢?我们将我们以前的一些东西,比如我们的sona的这个认证的这个ID,这是在这,然后呢,把这个sona的这个认证的ID当成我们这个token啊,它的值呢当成token,我们接下来要给sona cube它里边呢提交我们的这个代码质量分析。
01:00
怎么提交呢?我们使用SH,然后呢MVN就是me,然后sona冒号sona,也就是说我们使用sona这个插件,然后呢,使用我们这说好我们的这些参数,以及我们使用的so纳的这个token的值,把这些用完了以后,我们就可以来进行质量分析,我们这个so纳,So纳这肯定是用的so纳插件,然后呢,它在这相当于杠GS指定了一个me的全局配置文件,是使用它自己的配置文件,自己的配置文件呢,相当于告诉了我们这些so纳插插件,这都在哪,我们呢也可以来使用它的这个配置文件,这个呢,作为我们的最终me配置文件,好,我们把这个复制过来,把它整个这个配置文件拿过来,拿过来我们直接用这是它的这个me的这个全局配置文件,我们把这个将来要拿过来用的好,这是它的全局配置文件,这个配置文件里边呢,有说明这个索纳插件,这些都在哪儿,当然你如果不用这个配置文件,所有的这些插件也好,什么东西也。
02:00
好,默认呢,都会是去我们的门问的这个中央仓库,我们来下载,但我现在的这个门全局呢,配的是阿里云,但我们线上的门又会去中央仓库,你在这一块呢,插件里边可以指定me的mirrors,我们的镜像地址是用哪一块的,包括呢,我们me的其他这些什么的,这些都是用哪一块的,以及它还指定了本地仓库等等这一堆,那这样我们先不用这个全局的配置文件来看默认它能不能去远程下载到索纳的这些插件,如果能的话那就好了,但是呢,得改善一个东西,就是这个全局配置,因为我们默认如果去线上的这个真S环境,我们的这个ma容器里边,它的这个镜像啊,它不是我们的阿里云镜像,所以我们应该修改一下,所以我们在这儿来还是在古力mail这个里边,因为我们线上还要用,所以我专门来准备一个我们的X麦,X麦configuration。好,我们就写来写一个插面,这个插面呢,那就是我们这个moment的MVN的这个setting setting。
03:04
点一个插门,我用me的这个配置,那me的这个配置呢,我们就把它的这一块复制过来,但是呢,剩下的都不要,插件的这个其他不要,我就留一个镜像,CTRLCCTRLV,然后呢,我留一个什么样的镜像,就是把它这一块的其他东西全部删掉,Profiles我也不要,然后呢,我就留上一个这个镜像仓库的地址,让他用我们这个阿里云的镜像来打开我以前门的配置,相当于在这儿替换你以前自己的这个me的这一块设置,我以前me配置里边,Setting里边。好,我拿到这个阿里云的这个镜像来给大家看一下F,来找一下S。这是我们的这个镜像,我呢配的是阿里云的这个东西,阿里云的这一块镜像呢,什么都有,我就直接拿过来配到我们这一块,我们以后线上的这个环境也就用这个镜像,好现在呢,我们在这一块memory的全局配置我们在这儿指定好了,那接下来我们就把so纳的这一段代码分析,这个阶段我就直接复制过来,然后呢来到我们的这个金克S的这个文件里边,我们来直接编辑我们的这个金克S文件,来加入我们的代码分析流程,在金克S下边这stage这有一个阶段,然后呢,下边又有一个阶段,那我们这个阶段呢,就是我们的代码质量分析好,把这个阶段拿过来,把这个阶段我们来shift它,我们来给它缩进一行,那这一行呢,我们就是我们的这个缩代码质量分析。
04:37
好,代码质量分析呢,全部这一块呢,用默认值,只不过这一块变一下叫mvn sona sona gsgs呢指的是我们的这个用一个全局配置文件PWD,那就是当前目录,当前目录他说在configuration下边,但是我们自己其实呢,是在我们自己的这一块,代码在我们这,在我们的整个古mail下边呢,我们有一个me setting,那这个东西呢,我们还得把它提交上来,好,我们先直接提交给马云仓库,我们一会儿呢要拉过来把这个我们提交过来。
05:16
那然后呢,我们就不用写configuration那个路径了,所以我们把这呢得修改一下,来到我们的这个镜像的这一块来编写我们的金S,我们不用这个configuration pwd,那就是当前目录,当前目录式呢,其实我们上一步giate已经把这个代码呢下载过来了,下载过来你可以让他打印一下当前目录,这都没啥问题,比如我们在这儿我来写一个SH,我来运行一段我们自己的脚本,来让他打印一下当前目录,好,那这个当前目录呢,我们直接,诶我们就像它的这一块,两个标号直接这个PWT,我们这块都能打印过来,当然我们这一块呢,要使用E口命令,那在控制台打印这当前目录呢,其实就是我们get拉取来的这个代码,先临时存的目录,那就在当前目录下,然后呢,不找这个settings,我们呢,刚才提交的是一个这样的文件,是一个我们叫这个main settings是这个文件control。
06:16
C来复制过来,所以呢,我们现在叫me settings,那me settings拿过来以后呢,杠D我们来使用sona的一些配置,连上so纳,然后呢,我们接下来就应该来进行代码分析,好这一块呢,我们加入了一个阶段叫代码质量分析,没写来点击确定,测试一下我们这个阶段能否正常运行,特别是我们这个当前目录这一块呢,对不对,那只要我们这个金s fair,我们哪一块语法写错的话,我们来点击金克S编辑金克s fair,我们就能,它呢就会有提示说我们有问题,我们这个stage呢,写到位置是错的,我们把这个stage位置一定要写到这个stages里边,然后呢,这是一个阶段,然后我们再来一个阶段,那语法错了呢,它也有提示,还是非常不错的,好,我们把这一块呢,还是来缩进回来,这是我们的又一个阶段,那这个阶段就是来进行代码质量分析,来点击确定,只要我们的整个流水线语法来编辑是正确的。那这一块呢,就应。
07:17
哎,有我们整个的这个流水线这个视图,那我们来刷新一下我们这个流水线,我们现在来重新来准备运行,看能不能进行我们的这个代码质量分析,我来点击运行,运行以后呢,来输一个随便项目名,现在还没用到,我们现在整个全项目要代码质量分析,我来点一个确定好,我们这个呢正在运行中,我们接下来就看我们最终的效果,那么就来等待它的这个运行就行了,那么来看,只要这一块呢,运行失败,我们就应该查看日志,在代码质量分析的时候,E口当前目录,哎,这个当前目录的内容是已经一口出来的,没问题,但是呢,它在我们这提示no such property,就是我们的branch name,我们这个分支名字,我们来给大家看一下。
08:01
来到我们的这个流水线的文件里边,来修改一下我们的这个流水线,这是我们流水线文件,好,我们来先编辑j fair来找一下,这一块呢,有一个诶so纳这呢要用一个这个分支的名字,但这个分支的名字呢,是不是这个GIHUB拉取的时候产生的一些原数据,那这一块呢,没有分支的名字,我们可以来写一个,在我环境变量里边,我们来定义一个分支的名字,比如这个分支的名字呢,我们就叫master,我们可以来定义出一个分支的名字,那有了这个分支的名字,因为我们看到这个branch呢,就是这个master,其实我们要的就是这个原数据,就是这一块的信息,而分支的名字拿过来以后,那接下来我们就可以使用sona cube来进行代码质量分析,好,我们现在来点一个确定,而且我们之前这个E口这个目录我们看到了,那这个目录看到呢,刚才我们看到这个日志其实有问题,就是这个目录没有进我们古力庙这个项目里边,我们可以来给大家看一下我们刚才运行的。
09:01
这个失败的这个流水线,它的这个日志点进来们点一个日志,我们在这儿打印的时候,这个代码质量分析,我们看,我们说每一次我们一个流水线,它就会在我们这个流水线鼓励mail c icd这个工作空间下,如果我们拉取了代码,代码呢就会放到这个工作的空间下,我们拉取了古lemail,那就叫古lemail,所以我们ma要用的配置文件还在古lymail里边,所以我们就得进去,所以我们这一块呢,修改一下我们这个金ins的这个费尔文件,这个费尔文件呢,主要就是我们先来填一个分支的名字,刚才没保存好,我来填第一个分支的名字是master,它呢是我们的master,没问题,Master,然后呢,再接下来我们还要用的就是下边。然后这一块呢,GS全局配置文件在当前目录下,我们的这个项目呢,是鼓励mail下边,在这个下边有一个me setting这个配置,然后你按照这个配置给我来进行点一个确定好我们这个金fair这个文件呢,我们编辑好,编辑好以后呢,只要这一块是正常的,我们就可以接下来继续运行来运行,随便来写一个版本,那运行之前我们最好来刷新一下。
10:17
好,我来点一个运行来随便来写一个版本,写一个项目名,比如鼓励mail,然后呢,我们就叫卡,然后我来点击一个确定,来看他现在呢,能不能给我们进行代码质量分析,来稍等一阵。好,我们看到呢,这一块呢,还是有一个视野脚本的问题,来到这个问题里边,再来确认一下PWD,我们呢当前目录,诶我们现在呢,古励妙CICD,然后我们要进来这块呢,说我们这个古力mail,然后这个setting,他说这个文件我们配置文件不存在,那这个不存在哦,现在是这样,我们还得来修改一下我们的这一块的配置,我们来到流水线里边,我们说我们前面用GIHUB拉取的代码是古励ma giate,我们来看一下我们GI haveb的这个地址,那GI have,我们鼓励mail GI相当于从这个路径来拉取的代码,其实呢,它下边再没没有文件夹了,是直接呢会把这些所有的这个代码带我们的这个配置文件,我来刷新一下,看我们这个配置文件有没有,我们之前呢,提交了把我们这个配置文件都会放在我们这个指定的工作空间这个目录下,所以呢,我们在这儿其实不用加我们的鼓励mail,诶这是因为我们拉取来的这个代码拉取。
11:31
是它内容古励麦最外层的这个到没有这个文件夹了,好,我们现在呢,给它修改一下,来点击确定,点击确定以后呢,我们接下来再来给它运行,而且我们sona要进行代码质量分析,那么后来呢,肯定要先要下载我们这个sona的me插件,所以我们看一下它的整个完整过程,来点击一个运行好我们项目的名字,随便来写一个,点一个cut。来点击确定好,我们来等待它的整个运行流程,好,现在呢,来到了代码质量分析,我们可以看一下日志,日志的第一个我们这一块呢没问题,第二个我们看这一块呢,我们都看到了整个me要下载我们的这个桑cube这一块插件,我们这一块呢,插件就开始下载运行,那下载运行完了以后,就会把我们这个代码提交给我们的索纳,来进行我们的整个代码质量分析,那么就来稍等一阵。
12:24
好,那我呢大概等呢20多分钟,因为这是第一次构建,我要下载一些插件等等,包括我们要编译项目,这块呢,出现了我们这个问题,来看一下这个问题,来查看日志,这个日志里边呢,有一个扫码so纳这个代码质量分析,那前面这一块呢,我们输出的没问题,看后边这这后边这一块呢,它肯定会有一些错误日志,好,这个日志可能太大了,我们在这展开的话,它在这卡死,大家也可以下载过来看,那么就稍等一下,好,我们看到呢,它列举出了我们的这一块日志,日志的整个流程,我们来看一下到底是哪一块出现问题,前面这一块我们下载各种依赖没什么问题,那么就来一直往下,他们这个下边,下边我们在在最下边我们来往下翻,这儿还是来下载,下载我们相关的插件,依赖我们在这儿下载好我们再来往下翻。
13:18
那这块呢,还是下载,那下载完了以后呢,我们看到这这呢,相当于它决定了一下我们这些项目的构建顺序,先构建古力庙这个大项目,它是一个泡,剩下的炸炸炸炸我们都来构建,然后构建完以后呢,加它又是来下载来继续往下边来看。这块的这个炸包,它这儿都下载完了以后,我们再来往下翻,再来往下翻看前面这一块呢,它构建我们这个古力面这个泡沫呢,它来下载这些炸包,下载我们要用的之前的一些spring相关的依赖炸包,它都在这儿来下,我们就来等一下,一直往下这呢还是下载,那么就一直往下翻,那这一块呢,就都是下载,我们就直接拉到最后,拉到最后们看到这一块全部都是下载我们相关的依赖,好我们下载,那到这儿出现了一些问题,我们来看这块的整个流程,我们来分析一下,首先是me come play plug,就是我们me的这个编译插件,这个编译插件呢,先来加载我们全局的这个memory配置,然后呢,接下来把我们一些东西呢,先放到这个so纳这个缓存目录里边,一直到下边,然后呢,它决定了我们这个项目的这个基础目录,就是在我们古力妙CIICD,我们这个流水线的工作目录下,好这一块呢,我们看到这块还有一个警告是我们这个so的这个branch这个属性呢。
14:35
已经过时了,我们以后呢,想要用用这个soda branch name来替换,包括我们再来往下边下来扫描我们这个古力mail里边的,诶,这个库存管理系统,然后库存管理系统的一些最终的分析报告信息,我们可以放在这个缩短目录啊,这一块呢,Source,我们看到源代码的位置,它也分析出来po文件的位置,还有测试代码的位置,这块呢,是来扫描我们的古力麦IL wear的,那前面肯定还有扫描其他项目的。
15:03
那我么就来翻到下面,然后呢,接下来确认我们这个Java源代码的版本是JAVA8,好,没问题,然后呢,我们这个Java的类路径开始初始化上来,这一块呢,我们第一个古力麦尔0.1snap shot,现在呢就已经出错了,剩下呢就都跳过了,出错的原因这一块呢也说的很清楚,那这一块呢,提示说执行我们全局的这个so纳插件,我们执行这个so纳命令的时候,在我们这个project鼓ma在这儿呢,执行命令的时候出错了,说原因说请让我们提供编译后的这个类,因为我们这个古力庙它认为没有编译后的类,那对了,因为我们这个古力庙呢,它是一个负工程,我们没有写Java代码,只有我们的po文件什么的,然后接下来看它的提示,说我们应该使用这个属性叫SOA Java be。就是我们桑纳的这个Java编译后的这些东西在哪,我们应该可以用这个属性来指定一下,那然后呢,他就能给我们分析这些代码了,好,那这个问题呢就出来了,现在我们没有用这个属性最终指定我们这个sola这一块呢,它要编译的这个代码位置在哪,我们可以先在po里边来备注一下,他说呢,我们缺这么一个属性来指定我们要编译的这类的位置,那么下节课呢,就来解决这个。
我来说两句