搭建一个windows的DevOps环境记录

本文详细指导了如何在Windows上搭建DevOps环境,包括Jenkins的安装与配置,额外插件的安装,SonarQube(包括PostgreSQL)的部署,以及Maven的集成和代码扫描。遇到的问题和解决方案也一并分享。
摘要由CSDN通过智能技术生成

边搭建边记录,整个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:

可参考:sonar-scanner安装和使用_sonar scanner 安装-CSDN博客

基本上就是下载,解压;

五、安装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的相关信息:

  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
  </pluginGroups>

   <profiles>

        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.login>sqa_5e74a2bd324e59f457028ssssss</sonar.login>
                <sonar.host.url>http://localhost:9000</sonar.host.url>
            </properties>
        </profile>

</profiles>

以上代码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

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

这里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包。这种方式确实会要求Maven和SonarQube的JDK版本一致,但如果直接使用SonarScanner插件的方式就可以不一致,可回去参考链接中的第一种方式;

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

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

七、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里面先新建项目,比如:

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值