全面解析SonarQube 7.8安装与Maven集成指南:兼容JDK 1.8和MySQL的代码质量管理

 更新时间:2025年08月15日 11:34:27   作者:cheng_zhang_zhong  
SonarQube 7.8为JDK1.8和MySQL5.x量身打造,提供稳定兼容性,安装需配置JDK、数据库及插件,Maven集成需调整settings.xml与pom.xml,下面通过本文给大家介绍SonarQube 7.8安装与Maven集成指南:兼容JDK 1.8和MySQL的代码质量管理的相关知识,感兴趣的朋友跟随小编一起看看吧

引言:为什么选择SonarQube 7.8?

SonarQube 7.8是一个长期支持(LTS)版本,特别适合使用JDK 1.8的项目。它提供了稳定的Java 8支持,而更高版本需要JDK 11及以上。此外,SonarQube 7.8兼容MySQL数据库,而8.0及以上版本已弃用MySQL,改用PostgreSQL。对于长期维护的Java 8项目,SonarQube 7.8是一个理想的选择,避免了升级带来的环境适配问题。

一、环境准备与下载

版本要求

  • SonarQube 7.8:需要JDK 1.8(推荐Oracle JDK 8或OpenJDK 8)。
  • 数据库:MySQL 5.6或5.7(8.0不兼容)。
  • 操作系统:Linux/Windows均可(本文以Linux为例)。

下载地址

二、安装与配置SonarQube 7.8

解压与目录结构

unzip sonarqube-7.8.zip -d /opt
cd /opt/sonarqube-7.8

配置数据库

  1. 创建MySQL数据库
CREATE DATABASE sonarqube CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'sonar'@'%' IDENTIFIED BY 'sonar123';
GRANT ALL PRIVILEGES ON sonarqube.* TO 'sonar'@'%';
FLUSH PRIVILEGES;

2.修改sonar.properties: 编辑conf/sonar.properties

# 数据库配置
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar123
# 其他关键配置
sonar.web.host=0.0.0.0
sonar.web.port=9000

3.替换MySQL驱动: 将mysql-connector-java-5.1.48.jar复制到lib/jdbc目录。

启动SonarQube

# Linux
./bin/linux-x86-64/sonar.sh start
# Windows
./bin/windows-x86-64/StartSonar.bat

验证安装:访问 http://服务器IP:9000,默认账号admin/admin

三、Maven项目集成

全局配置(settings.xml)

在Maven的settings.xml中添加:

<settings>
 <pluginGroups>
  <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
 </pluginGroups>
 <profiles>
  <profile>
   <id>sonar</id>
   <activation>
    <activeByDefault>true</activeByDefault>
   </activation>
   <properties>
    <sonar.host.url>http://服务器IP:9000</sonar.host.url>
    <sonar.login>生成的令牌</sonar.login>
   </properties>
  </profile>
 </profiles>
</settings>

项目级配置(pom.xml)

确保指定兼容JDK 1.8的插件版本:

<build>
 <plugins>
  <plugin>
   <groupId>org.sonarsource.scanner.maven</groupId>
   <artifactId>sonar-maven-plugin</artifactId>
   <version>3.6.0.1398</version> <!-- 兼容7.8的版本 -->
  </plugin>
 </plugins>
</build>

执行代码分析

mvn clean verify sonar:sonar

查看结果:登录SonarQube控制台,查看代码覆盖率、Bug数、重复率等指标。

四、自定义规则与插件

自定义规则

  1. 修改Quality Profile
  • 进入SonarQube控制台 → Quality Profiles → 复制默认规则集(如"Sonar way")。
  • 激活/停用特定规则,调整阈值(如复杂度、重复代码检测)。

常用插件

  • 内置插件:Java、JavaScript、Web。
  • 推荐安装
    • FindBugs(静态Bug检测)
    • Checkstyle(代码风格检查)
    • JaCoCo(覆盖率分析)

安装方法

这些插件号称是可以在sonarqube的marketplace里安装的,如图:

如果版本不对应,可以点击issue Tracker 内部来获取合适的版本,下载插件JAR包至extensions/plugins目录,重启SonarQube。

注意重启SonarQube,不是直接关闭cmd窗口

1、可以重启电脑

2、可以将对应的进程杀死

jps -l命令会列出所有Java进程的进程ID、类名以及主类的完整包名或JAR文件的完整路径名‌

taskkill /F /PID 进程号

五、注意事项

  1. 内存调整:修改conf/wrapper.conf中的wrapper.java.maxmemory=1GB(避免OOM)。
  2. 防火墙:确保9000端口开放。
  3. MySQL时区:若报时区错误,在JDBC URL中添加&serverTimezone=UTC

通过以上步骤,您可顺利在JDK 1.8环境中搭建SonarQube 7.8,并与Maven项目集成实现代码质量管理。若有疑问,欢迎评论区交流!

到此这篇关于全面解析SonarQube 7.8安装与Maven集成指南:兼容JDK 1.8和MySQL的代码质量管理的文章就介绍到这了,更多相关SonarQube 7.8安装与Maven集成内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java Junit单元测试实例详解

    Java Junit单元测试实例详解

    在本篇文章里小编给大家分享的是关于Java Junit单元测试的相关知识点内容,有兴趣的朋友们学习下。
    2019-11-11
  • 解决SpringBoot使用@Value获取不到yaml中配置值的问题

    解决SpringBoot使用@Value获取不到yaml中配置值的问题

    在最近的开发中遇到一个问题,使用@Value获取yml文件中配置的属性时始终获取不到值,所以本文给大家详细介绍了SpringBoot使用@Value获取不到yaml中值的问题分析及解决方法,需要的朋友可以参考下
    2024-01-01
  • Java将Lambda表达式对应的类保存到class文件中的方法示例

    Java将Lambda表达式对应的类保存到class文件中的方法示例

    大家在日常开发中应该都用过 Lambda表达式,以下面的 java代码为例,我们在运行 HelloWorld中的 main方法时,可以看到 r的类型信息,但是在编译时、运行时都没有看到 r对应的类的 class文件,本文给大家介绍了Java将Lambda表达式对应的类保存到class文件中的方法示例
    2026-05-05
  • springboot使用拦截器判断是否登录

    springboot使用拦截器判断是否登录

    这篇文章主要介绍了springboot使用拦截器判断是否登录,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 深入解析Java中volatile的底层原理

    深入解析Java中volatile的底层原理

    这篇文章主要介绍了深入解析Java中volatile的底层原理,volatile关键字用于保证变量的可见性和禁止指令重排序,即当一个线程修改了volatile变量的值,其他线程能够立即看到这个变量的最新值,而不是使用缓存中的旧值,需要的朋友可以参考下
    2023-07-07
  • Java中的Opencv简介与开发环境部署方法

    Java中的Opencv简介与开发环境部署方法

    OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与边缘检测、图像特征提取与描述等应用,本文介绍Java中的Opencv简介与开发环境部署方法,感兴趣的朋友一起看看吧
    2025-01-01
  • Spring事务和事务传播机制操作大全

    Spring事务和事务传播机制操作大全

    Spring中事务管理主要分为编程式事务和声明式事务,声明式事务推荐使用,声明式事务通过`@Transactional`注解实现,可以简化事务操作,本文给大家介绍Spring事务和事务传播机制,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • Java实现删除排序链表中的重复元素的方法

    Java实现删除排序链表中的重复元素的方法

    这篇文章主要介绍了Java实现删除排序链表中的重复元素的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • JVM内存结构划分实例解析

    JVM内存结构划分实例解析

    这篇文章主要介绍了JVM内存结构划分实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • log4j2的高并发死锁问题配置优化方式

    log4j2的高并发死锁问题配置优化方式

    这篇文章主要介绍了log4j2的高并发死锁问题配置优化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12

最新评论