全面解析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编程之基于SpringBoot框架实现扫码登录

    java编程之基于SpringBoot框架实现扫码登录

    本文将介绍基于SpringBoot + Vue + Android实现的扫码登录demo的总体思路,文中附含详细示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • idea 使用Maven Helper idea的解决方法

    idea 使用Maven Helper idea的解决方法

    这篇文章主要介绍了idea 使用Maven Helper idea的解决方法,本文给大家介绍的非常详细对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 在idea中全局引入并运行ElementUI方式

    在idea中全局引入并运行ElementUI方式

    本文详细描述了如何在IDEA中使用ElementUI,包括从官网获取连接、在IDEA终端运行命令安装ElementUI,以及如何在项目中全局引入ElementUI,通过新建页面并配置index.js和ElementUI.vue,可以实现在本地服务器上的展示
    2024-10-10
  • 浅析Java线程的中断机制

    浅析Java线程的中断机制

    本篇文章通过代码实例给大家分享了学习Java线程的中断机制的一些心得内容,有兴趣的朋友学习下吧。
    2017-12-12
  • Java 日期转换详解及实例代码

    Java 日期转换详解及实例代码

    这篇文章主要介绍了Java 日期转换详解及实例代码的相关资料,需要的朋友可以参考下
    2016-11-11
  • 详解Spring中的Environment外部化配置管理

    详解Spring中的Environment外部化配置管理

    本文主要介绍了Spring中的Environment外部化配置管理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • java字符串遍历的几种常用方法总结

    java字符串遍历的几种常用方法总结

    Java字符串是一系列的Unicode字符序列,但是它却常常被误认为是char序列,这篇文章主要给大家介绍了关于java字符串遍历的几种常用方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • SpringBoot多种环境自由切换的实现

    SpringBoot多种环境自由切换的实现

    本文主要介绍了SpringBoot多种环境自由切换的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 线程池FutureTask异步执行多任务实现详解

    线程池FutureTask异步执行多任务实现详解

    这篇文章主要为大家介绍了线程池FutureTask异步执行多任务实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • java默认方法sqrt实例用法

    java默认方法sqrt实例用法

    在本篇文章里小编给大家分享的是一篇关于java默认方法sqrt实例用法,对此有兴趣的朋友们可以跟着学习下。
    2021-03-03

最新评论