美文网首页
sonarqube7.8+mysql5.7+jdk1.8

sonarqube7.8+mysql5.7+jdk1.8

作者: 含辞未吐气若幽兰 | 来源:发表于2025-04-18 10:33 被阅读0次

    sonarqube7.8+mysql5.7+jdk1.8,注意版本号,开始安装的最新版本的sonar,但最新版本对jdk有要求,至少jdk11,我们项目用的是jdk1.8版本,用最新版本的sonarque编译会报错,解决不了,故退而求sonarqube7.8版本

    sonarqube 7.8 之后就不再支持msyql数据库,7.8是最后一个支持mysql数据库的版本

    1、下载

    wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.8.zip

    2、jdk安装配置
    下载jdk-8u371-linux-x64.tar.gz

    创建安装目录

    mkdir /usr/local/java/

    解压至安装目录

    tar -zxvf jdk-8u371-linux-x64.tar.gz -C /usr/local/java/.

    vim /etc/profile

    export JAVA_HOME=/usr/local/java/jdk1.8.0_371
    export JRE_HOME={JAVA_HOME}/jre export CLASSPATH=.:{JAVA_HOME}/lib:{JRE_HOME}/lib export PATH={JAVA_HOME}/bin:$PATH

    source /etc/profile

    java -version

    3、安装mysql 5.7

    wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

    rpm -ivh mysql57-community-release-el7-9.noarch.rpm

    yum -y install mysql-server

    shell> systemctl start mysqld
    grep 'temporary password' /var/log/mysqld.log -- 查看初始密码

    mysql -u root -p

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'Top@Sonar2025';
    GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'Top@Sonar2025' WITH >GRANT OPTION;

    说明:如果运行sonarqube时直接使用mysql的root账户,该步骤可跳过。

    mysql -u root -p

    create database sonar;
    CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'Top@Sonar2025';
    GRANT ALL PRIVILEGES ON . TO 'sonar'@'%';
    exit

    4、sonar安装
    sonarqube-7.8.zip解压/opt
    配置数据库连接

    vim /opt/sonarqube-7.8/conf/sonar.properties

    sonar.jdbc.username=root
    sonar.jdbc.password=Top@Sonar2025
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

    vim /opt/sonarqube-7.8/conf/wrapper.conf

    wrapper.java.command=/usr/local/java/jdk1.8.0_271/bin/java

    创建用户用于启动 Sonarqube
    因为 Sonarqube 依赖 Elasticsearch ,而后者不能使用 root 用户启动,所以还需要创建一个专门用于启动 Sonarqube 的用户,代码如下:
    创建用户

    useradd sonar

    passwd sonar Top@sonar2025

    chown -R sonar:sonar /opt/sonarqube-7.8

    但其实 Sonarqube 在启动时,不用专门切换到该用户再启动,只需要在 Sonarqube 的启动文件中将执行用户指定为该用户即可。

    vim /opt/sonarqube-7.8/bin/linux-x86-64/sonar.sh 找到 RUN_AS_USER ,将刚才创建好的用户sonar填入即可

    配置目录的执行权限
    为防止 Sonarqube 相关目录没有执行权限,这里直接执行

    chmod -R 764 /opt/sonarqube-7.8 为整个文件夹更改权限。

    5、配置系统参数
    vim /etc/sysctl.conf 打开配置文件,在文件末尾添加如下代码:
    vm.max_map_count=262144
    fs.file-max=65536

    执行 sysctl -p 使配置生效,还可以执行

    sysctl -a|grep vm.max_map_count 查询配置是否生效

    之后还需要执行以下命令

    ulimit -n 65536

    ulimit -u 4096

    vim /etc/security/limits.conf 打开配置文件,在文件末尾添加如下代码:

    sonar - nofile 65536
    sonar - nproc 4096

    Elasticsearch 相关配置

    vim /opt/sonarqube-7.8/conf/sonar.properties 打开配置文件

    找到 sonar.search.javaAdditionalOpts 选项,在后面填入 -Dbootstrap.system_call_filter=false

    6、maven 安装配置(windows 客户端)
    下载maven插件sonar-maven-plugin-3.11.0.3922.jar放/opt/sonarqube-7.8/extensions/plugins (好像不要放进去也行) (下载地址为:https://central.sonatype.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin/versions)

    maven相关配置参考:https://docs.sonarsource.com/sonarqube-server/8.9/analyzing-source-code/scanners/sonarscanner-for-maven/

    7、配置 Sonarqube 访问地址
    vim /opt/sonarqube-7.8/conf/sonar.properties 打开配置文件

    在 web 配置的最后分别配置 IP 、端口、根请求名称,也可以直接搜索 sonar.web.host 来找到该区域。
    配置:sonar.web.host sonar.web.port sonar.web.context
    比如配置的 IP 是 192.168.31.31 ,端口是 9000 ,根请求是 /sonar ,那么在浏览器中输入 http://192.168.31.31:9000/sonar 即可访问到 Sonarqube 首页。

    不过在访问之前还需要使用

    firewall-cmd --query-port=9000/tcp 来查询端口是否对外开放,如没开放端口,使用如下命令开放端口

    firewall-cmd --zone=public --add-port=9000/tcp --permanent

    firewall-cmd --reload

    8、启动 Sonarqube
    直接执行 /opt/sonarqube-7.8/bin/linux-x86-64/sonar.sh console 就可以启动 Sonarqube ,并且直观的看到启动日志,建议调试期间使用该命令启动。
    等调试结束,启动完全没问题了,就可以使用 ./sonar.sh console & 来实现后台运行,或者直接 ./sonar.sh start 来快速启动。

    进入http://192.168.31.31:9000/sonar 默认账号密码:admin/admin

    9、windows客户端配置
    配置系统环境变量增加:SONAR_RUNNER_HOME,值:E:\sonar-scanner-4.5
    系统环境变量,path加入:%SONAR_RUNNER_HOME%\bin

    下载maven-3.6.0.zip,解压D盘根目录
    系统环境变量,path加入:%MAVEN_HOME%\bin

    修改配置
    Edit the settings.xml file, located in <MAVEN_HOME>/conf or ~/.m2,to set the plugin prefix and optionally the SonarQube server URL.

    <settings>
    <pluginGroups>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
    <profile>
    <id>sonar</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    </activation>
    <properties>

    <sonar.host.url>
    http://192.168.x.x:9000
    </sonar.host.url>
    </properties>
    </profile>
    </profiles>
    </settings>

    配置jdk1.8

    用户环境变量,path里加:E:\sonar-scanner-4.5\bin

    10、扫描项目
    前端项目

    后端项目

    11、常见坑
    11.1 执行java后端项目安全扫描时报错:
    SonarQubeMojo has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

    解决方案,项目根目录下的pom.xml,增加或修改如下:

    <build>
    <plugins>
    <plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.11.0.3922</version>
    </plugin>
    </plugins>
    </build>

    11.2 Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:x.x.x.x:sonar (default-cli) on project xxx: null: MojoExecutionException: NullPointerException

    命令中加入这个
    -Dsonar.scm.disabled=true
    或者administration--configuration--scm 关闭

    报错时,命令后加 -X 看日志详情

    11.3 ERROR: Please provide compiled classes of your project with sonar.java.binaries property
    原因:最新版本的sonarQube6.5以上的版本只能扫描class文件
    解决:新版本的需要在项目根目录下的sonar-project.properties文件新增属性sonar.java.binaries

    sonar-project.properties

    must be unique in a given SonarQube Server instance

    sonar.projectKey=my:project

    --- optional properties ---

    defaults to project key

    sonar.projectName=My project

    defaults to 'not provided'

    sonar.projectVersion=1.0

    Path is relative to the sonar-project.properties file. Defaults to .

    sonar.sources=.

    Encoding of the source code. Default is default system encoding

    sonar.sourceEncoding=UTF-8

    11.4 ERROR: Error when running: 'node -v'. Is Node.js available during analysis? No CSS files will be analyzed.
    分析电脑上需要安装node.js node-v20.11.0-x64.msi
    执行命令:node -v 查看版本

    10.5 Sonar ERROR:Failed to upload report - An error has occurred. Please contact your administrator

    解决:vim /etc/my.cnf
    加一行最后
    max_allowed_packet=64M

    重启mysql

    service restart mysqld

    重启sonar

    相关文章

      网友评论

          本文标题:sonarqube7.8+mysql5.7+jdk1.8

          本文链接:https://www.haomeiwen.com/subject/evwubjtx.html