搭建一个windows的DevOps环境记录

边搭建边记录,整个DevOps环境的搭建可能会很久。。。

一、安装Jenkins:

参考:Jenkins基础篇--windows安装Jenkins-CSDN博客

注意上面选择JDK的路径,选择到安装目录,该目录并不一定要在path中配置了(就是因为不在path中,这里的选择JDK的目录才很有用)。

安装完后,先不着急登录使用,如果需要修改项目主空间目录,最好这时候整,不然后面还要重新下一次插件。可参考:

Jenkins持续集成之修改jenkins工作目录_jenkins修改工作空间根目录-CSDN博客

二、安装额外的插件:

Manage Jenkins -> Plugins-> Available plugins

三、安装SonarQube:

1、先安装PostgreSQL:https://blog.csdn.net/GoodburghCottage/article/details/125975089

2、再安装SonarQube:https://blog.csdn.net/weixin_44009447/article/details/132646864

2.1 数据库的配置,可以使用默认的:

sonar.jdbc.url=jdbc:postgresql://localhost/postgres?currentSchema=public

2.2 这时候如果JDK没有在Path里面配置,那大概率会出现:

Starting SonarQube...
Unrecognized option: --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

类似的日志。这时候可以参考:https://blog.csdn.net/wang_624/article/details/129961824

这时候再配置环境变量增加SONAR_JAVA_PATH可能会需要重启电脑,那么再简单粗暴一点,直接在代码里配置上JDK的路径:

    set SONAR_JAVA_PATH="C:\Users\XXXXX\.jdks\corretto-17.0.8.1\bin\java.exe"
    if not "%SONAR_JAVA_PATH%"=="" (

启动,正常了。

四、安装Sonar_Scaner:

可参考:百度安全验证icon-default.png?t=N7T8https://baijiahao.baidu.com/s?id=1766818517549151742&wfr=spider&for=pc

不过文章中说的使用sonar-scaner去扫描java的方式,好像在新版本的SonarQube里已经不能用了,除非替换某个jar包成旧版本的。这里就不折腾,java还是使用maven来检测。下面会介绍。

五、安装Maven(我一般用IDE里面自带的,没想到这里还要装一个):

https://blog.csdn.net/swadian2008/article/details/113530102

六、Maven检测代码并上传到SonarQube中进行显示:

大体流程可以参考这篇文章的使用部分:Windows配置SonarQube代码审查工具详细步骤(附带IDEA SonarLint插件使用)_sonarqube windows安装_Keson Z的博客-CSDN博客

1、下载完整的代码到本地;

2、检查本地代码里面有没有target目录,没有就新建一个(一般都有的);

3、配置maven,加上SonarQube的相关信息:

 
   
    org.sonarsource.scanner.maven
 

   

        
            sonar
            
                true
            

            
                
                sqa_5e74a2bd324e59f457028ssssss
                http://localhost:9000
            

        

以上代码profile片段如果在运行mvn命令的时候指定了url、login的token估计就都不会生效,而优先使用命令行里的了。这里先配置上。

4、SonarQube里面新建项目(这里的项目名和key不一定需要按照artifactId来写),一路往下点,并获取到建议的命令,比如:

mvn clean verify sonar:sonar -Dsonar.projectKey=yudao -Dsonar.host.url=http://localhost:9000  -Dsonar.login=sqp_4a6d289cb9e356f4bb54645746734561d72a3

在下面这个页面里获取到:

搭建一个windows的DevOps环境记录_第1张图片

这里mvn需要走到verify则需要先跑test,但有些情况下test可能跑不下去,这时候可以先跳过,增加一个-DskipTests属性即可:

mvn clean verify sonar:sonar -Dsonar.projectKey=yudao -Dsonar.host.url=http://localhost:9000  -Dsonar.login=sqp_4a6d289cb9e356f4bb54645746734561d72a3 -DskipTests

注意,最好也加上-Dsonar.projectName属性,否则下次pom.xml里面的name更新后,SonarQube里对外展示的项目名也会跟着更新,不可控。

5、可能会遇到的问题:

5.1 windows配置环境里使用的是jre而不是jdk。这时候会报说没有编译工具,会提示你是不是用了jre,这时候下载一个jdk安装就好了;

5.2 SonarQube、Maven、代码使用的版本不一致,会报很长一段错误(隐约记得有说接口不匹配),这时候需要把这三位的JDK版本搞一致,最好使用同样的JDK包。

5.3 报很多单元测试问题。可以先使用-DskipTests屏蔽掉测试环节,后面再把测试调通后放开。

5.4 报错“Authentication error when executing blame svn”,这个需要在SonarQube的下面这个地方把SCM禁用掉(打开开关就是禁用):

搭建一个windows的DevOps环境记录_第2张图片

七、Jenkins集成SonarQube并通过maven扫描:

可参考:13.Jenkins集成sonarqube_jenkins sonarqube_做咩啊~的博客-CSDN博客

JAVA项目使用的还是Maven集成会更顺利,但是遇到一个问题报错是:

'mvn' 不是内部或外部命令,也不是可运行的程序

通过这篇文章介绍的:Jenkins构建时,报“‘mvn‘ 不是内部或外部命令,也不是可运行的程序_jenkins mvn不是内部或外部命令-CSDN博客第二个方法,可以解决这个问题(记得要重启节点,如果是build-in的,则重启Jenkins整个服务器)。

八、Jenkins集成SonarQube并通过Scaner扫描(比如扫描vue代码):

之前安装Scaner的时候已经集成到Jenkins了,这里就讲一下在构建中如何使用。

1、同样的,还是在SonarQube里面先新建项目,比如:

搭建一个windows的DevOps环境记录_第3张图片

2、一路往下点击,生成新的token或者使用已有的token都可以:

搭建一个windows的DevOps环境记录_第4张图片

搭建一个windows的DevOps环境记录_第5张图片

搭建一个windows的DevOps环境记录_第6张图片

搭建一个windows的DevOps环境记录_第7张图片

把上面的命令拷贝出来,有需要使用。

sonar-scanner.bat -D"sonar.projectKey=test" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=这里换成大家自己的"

3、回到Jenkins里面,把以上命令里面的参数添加到Build Steps里面就可以(各属性直接拷贝粘贴就好):

搭建一个windows的DevOps环境记录_第8张图片

你可能感兴趣的:(devops,运维)