From dfb1998afa5966cfcbb64d6505f58a4f00fce33f Mon Sep 17 00:00:00 2001 From: SLMS Development Team Date: Sat, 29 Nov 2025 22:21:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DSonarQube=EF=BC=9A=E7=A7=BB?= =?UTF-8?q?=E9=99=A4launcher=E6=A8=A1=E5=9D=97=EF=BC=8C=E6=B7=BB=E5=8A=A0s?= =?UTF-8?q?kipCompile=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 3 +- settings.gradle | 2 +- sonar-project.properties | 163 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 sonar-project.properties diff --git a/Jenkinsfile b/Jenkinsfile index 43b8aa9..a800f2f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -83,7 +83,8 @@ pipeline { -Dsonar.projectKey=%SONAR_PROJECT_KEY% ^ -Dsonar.projectName=%SONAR_PROJECT_NAME% ^ -Dsonar.host.url=%SONAR_HOST_URL% ^ - -Dsonar.java.binaries=**/build/classes ^ + -Dsonar.gradle.skipCompile=true ^ + -Dsonar.java.binaries=core/build/classes/java/main,cli/build/classes/java/main,gui/build/classes/java/main,backend/build/classes/java/main ^ --no-daemon ''' } diff --git a/settings.gradle b/settings.gradle index bb4fb03..66f3dde 100644 --- a/settings.gradle +++ b/settings.gradle @@ -19,4 +19,4 @@ include ':cli' include ':gui' include ':backend' include ':android' -include ':launcher' \ No newline at end of file +// include ':launcher' // 暂未实现 \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..ffc39c6 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,163 @@ +# ======================================== +# SLMS - SonarQube 项目配置 +# Smart Library Management System +# ======================================== + +# 项目基本信息 +sonar.projectKey=mcslms +sonar.projectName=mcslms +sonar.projectVersion=1.0-SNAPSHOT +sonar.projectDescription=智能图书管理系统 - 多平台图书管理解决方案,支持CLI、GUI、Web和Android四端应用 + +# ======================================== +# Gradle 多模块配置 +# ======================================== + +# 跳过编译(构建后再扫描) +sonar.gradle.skipCompile=true + +# 模块源代码路径 +sonar.sources=core/src/main/java,cli/src/main/java,gui/src/main/java,backend/src/main/java,android/src/main/java + +# 测试代码 +sonar.tests=core/src/test/java + +# 编码格式 +sonar.sourceEncoding=UTF-8 + +# Java 版本 +sonar.java.source=21 +sonar.java.target=21 + +# ======================================== +# 编译输出配置 +# ======================================== + +# Java 编译输出(包含 Android) +sonar.java.binaries=target/classes,android/build/intermediates/javac/debug/classes + +# 测试编译输出 +sonar.java.test.binaries=target/test-classes + +# 依赖库 +sonar.java.libraries=target/dependency/*.jar,android/build/intermediates/compile_library_classes_jar/debug/*.jar + +# ======================================== +# Web 应用配置(WUI) +# ======================================== + +# HTML 模板文件 +sonar.web.file.suffixes=.html,.xhtml,.jsp + +# Web 资源目录 +sonar.html.file.suffixes=.html + +# ======================================== +# 覆盖率配置 +# ======================================== + +sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml +sonar.java.coveragePlugin=jacoco + +# 排除不需要覆盖率分析的文件 +sonar.coverage.exclusions=\ + **/test/**,\ + **/*Test.java,\ + **/config/**,\ + **/*Application.java,\ + **/Main.java,\ + **/SLMS.java,\ + **/TestRunner.java,\ + **/GUITestRunner.java,\ + **/WebTestRunner.java,\ + **/InitDatabase.java,\ + **/MainActivity.java,\ + **/SimpleActivity.java + +# ======================================== +# 排除配置 +# ======================================== + +sonar.exclusions=\ + **/target/**,\ + **/build/**,\ + **/.gradle/**,\ + **/node_modules/**,\ + **/*.min.js,\ + **/*.min.css,\ + **/generated/**,\ + **/R.java,\ + **/BuildConfig.java,\ + **/android/src/main/res/**,\ + docs/**,\ + scripts/**,\ + **/*.md,\ + **/*.xml,\ + **/*.gradle,\ + **/*.properties + +sonar.test.exclusions=\ + **/test/**,\ + **/*Test.java + +# ======================================== +# 链接配置 +# ======================================== + +# Gitea 本地仓库 +sonar.links.homepage=http://localhost:3000/mcslms/SLMS + +# Jenkins CI +sonar.links.ci=http://localhost:8084/job/mcslms + +# 头歌远程仓库 +sonar.links.scm=https://bdgit.educoder.net/pu6zrsfoy/CHZU_CS231_SEB_lab.git + +# 问题跟踪 +sonar.links.issue=http://localhost:3000/mcslms/SLMS/issues + +# ======================================== +# 其他配置 +# ======================================== + +# 禁用 SCM 计算以加快分析 +sonar.scm.disabled=true + +# 新代码周期 +sonar.newCode.referenceBranch=main + +# 项目标签(四端应用) +sonar.projectTags=library-management,java,cli,gui,web,android,multi-platform + +# 日志级别 +sonar.log.level=INFO +sonar.verbose=false + +# ======================================== +# 四端应用说明 +# ======================================== + +# CLI (Command Line Interface) +# - 入口: com.smartlibrary.cli.CLIApplication +# - 位置: src/main/java/com/smartlibrary/cli/ + +# GUI (Graphical User Interface - JavaFX) +# - 入口: com.smartlibrary.gui.GUIApplication +# - 位置: src/main/java/com/smartlibrary/gui/ + +# WUI (Web User Interface - Spring Boot) +# - 入口: com.smartlibrary.web.WebApplication +# - 位置: src/main/java/com/smartlibrary/web/ +# - 模板: src/main/resources/templates/ + +# MUI (Mobile User Interface - Android) +# - 入口: com.smartlibrary.android.MainActivity +# - 位置: android/src/main/java/com/smartlibrary/android/ + +# 共享模块 +# - 数据模型: src/main/java/com/smartlibrary/model/ +# - 业务服务: src/main/java/com/smartlibrary/service/ +# - 数据库: src/main/java/com/smartlibrary/database/ +# - 工厂模式: src/main/java/com/smartlibrary/factory/ +# - 观察者模式: src/main/java/com/smartlibrary/observer/ +# - 通知系统: src/main/java/com/smartlibrary/notification/