码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 搭建一个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

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

    这里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禁用掉(打开开关就是禁用):

    七、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里面就可以(各属性直接拷贝粘贴就好):

  • 相关阅读:
    机器学习是什么?
    elementUI 源码-打造自己的组件库,系列四:Dialog组件
    js中各种数据类型检测与判定
    学习Ant Design Charts的使用——修改案例
    切换nvcc 的CUDA 版本
    渗透攻防Web篇-深入浅出SQL注入
    Mac m1配置flutter开发环境
    【C++】多态 ⑪ ( 纯虚函数和抽象类 | 纯虚函数语法 | 抽象类和实现 | 代码示例 )
    Java初始化大量数据到Neo4j中(一)
    VMware Fusion 13 正式版终于来了
  • 原文地址:https://blog.csdn.net/suamt/article/details/133921124
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号