用大模型的方法解决实际办公问题

在jenkins中调用sonar,去扫描项目代码;具体把sonar整合到jenkins中,比较简单,一般借助大模型跟他说“用jenkins脚本编写一个流水线脚本,调用sonar-scanner,扫描项目代码在/var/jenkins/workspace/project1/”

pipeline {
    agent any
    environment {
        SONAR_SCANNER_HOME = '/path/to/sonar-scanner'  // 替换为实际扫描器路径
        PROJECT_DIR = '/var/jenkins/workspace/project1'
    }
    stages {
        stage('SonarQube Analysis') {
            steps {
                script {
                    withSonarQubeEnv('SonarQube-Server') {  // 使用Jenkins配置的SonarQube凭据
                        sh """
                        cd ${PROJECT_DIR}
                        ${SONAR_SCANNER_HOME}/bin/sonar-scanner \
                        -Dsonar.projectKey=project1 \
                        -Dsonar.sources=. \
                        -Dsonar.host.url=http://sonarqube-server:9000 \
                        -Dsonar.login=${SONARQUBE_AUTH_TOKEN}
                        """
                    }
                }
            }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

       }

大模型能给你一段看上去专业的代码,但肯定没法直接用,因为实用这段脚本之前,基本环境要配置好,但具体怎么配置,还需要一个艰辛的过程。因为只要有卡点,就能花费你半天时间,所以还要把遇到的问题记录下来放进自己的知识库,先看怎么解决问题

想准确执行上面脚本,先配置好环境

1.安装插件

jenkins已经搭建,且很多方法都是docker搭建的,看脚本里最重要的一句就是执行sonar-scanner这个命令,而这个命令在哪里,根据当前环境想在docker安装的jenkins里不可能有sonar的命令,那一定就是后来加进去的。要想后来加到docker里,能想到的最直接简单方法就是安插件,到jenkins里找sonar相关的插件,根据关键词发现如下插件比较合适

公司记-jenkins整合sonar_项目代码

2.安装插件后,就要配置插件

这里就在全局工具配置菜单中找,因为里面有sonar scanner相关配置,自然跟着配置做就可以了

公司记-jenkins整合sonar_docker_02

这里配置完,在容器内容的目录中就会有安装后的目录内容如

ls /var/jenkins_home/tools/

hudson.plugins.sonar.SonarRunnerInstallation  hudson.tasks.Maven_MavenInstallation
  • 1.
  • 2.
  • 3.

注意如果没有,图省事那么多同事呢,从别人机器上把相应位置的目录拷贝到指定路径就成了

3.补充好大模型脚本,测试

为不出错,直接在容器内测试下,先:

把大模型给的脚本根据自己环境该好,把哪些变量或文字描述的路径改成自己的环境如下

/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonar-scanner/bin/sonar-scanner \

  -Dsonar.host.url=http://192.169.1.10:9000 \

  -Dsonar.login=squ_a8646807a496410ca7f2ea658984577 \

  -Dsonar.projectKey=agri_service \

  -Dsonar.projectName="agri_service" \

  -Dsonar.projectVersion=1.0.${BUILD_NUMBER} \

  -Dsonar.sources=. \

  -Dsonar.sourceEncoding=UTF-8 \

  -Dsonar.java.binaries=target/classes
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

然后在容器内直接运行,无问题。再把这段脚本复制到jenkins中执行

4 jenkins运行pipline

去jenkins里建立一个pipline任务,然后把上面改好的脚本复制到jenkins里

公司记-jenkins整合sonar_安装插件_03

这样运行jenkins就可以了

这里最大的卡点就是找到容器内运行sonar-scanner的方法。第一会纠结用容器内的命令还是直接用宿主机上的命令;第二确定用容器内命令,又找不到,因为装完插件后可能装的不全找不到对应命令。

这里用哪种方法简单就用哪个,安了插件找不到可以根据报错去问大模型。总之不是什么都问一遍大模型,他就是辅助我们做事,你要给大模型指明方向,不能让他去幻想,否则他就给你幻觉。