SonarSource/sonarqube

GitHub: SonarSource/sonarqube

SonarQube 是一个开源的持续代码质量检查工具,帮助开发团队自动发现代码缺陷、安全漏洞和设计问题,通过质量门实现干净代码。

Stars: 10632 | Forks: 2190

# SonarQube [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/2f8ad6d7c6171839.svg)](https://github.com/SonarSource/sonarqube/actions/workflows/build.yml) [![质量门状态](https://sonarcloud.io/api/project_badges/measure?project=sonarqube&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=sonarqube) [![AI 代码保证](https://next.sonarqube.com/sonarqube/api/project_badges/ai_code_assurance?project=org.sonarsource.sonarqube%3Asonarqube-private&token=sqb_c0e2fa9ac4ef89f9a8403c6ba235e108ceb1dce1)](https://next.sonarqube.com/sonarqube/dashboard?id=sonarqube) ## 持续检查 SonarQube 不仅能够展示应用程序的健康状况,还能突出显示新引入的问题。通过设置质量门,您可以[实现干净代码](https://www.sonarsource.com/solutions/clean-code/),从而系统地提高代码质量。 ## 链接 - [官方网站](https://www.sonarsource.com/products/sonarqube) - [下载](https://www.sonarsource.com/products/sonarqube/downloads) - [文档](https://docs.sonarsource.com/sonarqube) - [Web 应用源代码](https://github.com/SonarSource/sonarqube-webapp) - [X(推特)](https://twitter.com/SonarQube) - [SonarSource](https://www.sonarsource.com),SonarQube 的作者 - [问题追踪](https://jira.sonarsource.com/browse/SONAR/),只读。只有 SonarSource 员工可以创建工单。 - [负责任披露](https://community.sonarsource.com/t/responsible-vulnerability-disclosure/9317) - [下一个 SonarQube 版本的实例](https://next.sonarqube.com/sonarqube) ## 有疑问或反馈? 关于支持问题(如“如何操作?”、“遇到此错误,为什么?”等),请先阅读[文档](https://docs.sonarsource.com/sonarqube),然后前往 [SonarSource 社区](https://community.sonarsource.com/c/help/sq/10)。您的问题很可能已经有人回答过了!🤓 请注意,这是一个社区论坛,因此请保持基本的礼貌(如“您好”、“谢谢”等)。如果您的帖子没有得到回复,请至少等待三天后再进行顶帖。没有操作员随时待命。😄 ## 构建 请按照以下说明在本地构建源代码。 ### 前置要求 - Java 17 - 构建项目所需 - 原生 Git - 必须安装并在 PATH 中可用 - npm - 构建所需 - 测试 - 可以通过在 Gradle 命令中添加 `-x test` 来禁用(如果只是想构建而不运行测试) ### 构建并运行单元测试 在项目根目录下执行: ``` ./gradlew build ``` 生成的 zip 分发文件位于 `sonar-application/build/distributions/`。解压缩后,通过以下命令启动服务器: ``` # 在 Linux 上 bin/linux-x86-64/sonar.sh start # 在 MacOS 上 bin/macosx-universal-64/sonar.sh start # 在 Windows 上 bin\windows-x86-64\StartSonar.bat ``` ### 在 IDE 中打开 如果项目从未构建过,请先按常规方式构建(参见上一节),或使用更快速的命令: ``` ./gradlew ide ``` 然后在 IntelliJ 或 Eclipse 中将根文件 `build.gradle` 作为项目打开。 ### Gradle 提示 | `./gradlew` 命令 | 描述 | | -------------------------------------- | ------------------------------------ | | `dependencies` | 列出依赖项 | | `licenseFormat --rerun-tasks` | 通过应用 HEADER.txt 修复源代码头文件 | | `wrapper --gradle-version 5.2.1` | 升级 Gradle Wrapper | ## 包含 UI 更改的构建 SonarQube 的 UI(我们称之为 webapp)位于另一个仓库中:[sonarqube-webapp](https://github.com/SonarSource/sonarqube-webapp)。 在构建 `sonarqube` 仓库时,webapp 会自动从 Maven Central 作为依赖下载,这样您可以轻松贡献后端更改而无需关心 webapp。 但如果您的贡献也包含 UI 更改,则必须克隆 `sonarqube-webapp` 仓库,在该仓库中进行更改,本地构建,然后使用 `WEBAPP_BUILD_PATH` 环境变量指向您的自定义 UI 构建来构建 `sonarqube` 仓库。 以下是一个示例: ``` cd /path/to/sonarqube-webapp/server/sonar-web # 进行你的更改 # 安装依赖项,仅首次需要 yarn # 构建 webapp yarn build cd /path/to/sonarqube # 使用 webapp 的自定义构建来构建 SonarQube 仓库 WEBAPP_BUILD_PATH=/path/to/sonarqube-webapp/server/sonar-web/build/webapp ./gradlew build ``` 您也可以通过更新 `./gradle.properties` 文件中的 `webappVersion` 属性来指定特定版本的 webapp,然后正常构建 `sonarqube` 仓库。 ## 翻译文件 历史上,我们的翻译存储在 `sonar-core/src/main/resources/org/sonar/l10n/core.properties` 中,但此文件现已弃用且不再更新。 默认翻译(英文)现在定义在 webapp 仓库中,位置如下: https://github.com/SonarSource/sonarqube-webapp/blob/master/libs/sq-server-shared/src/l10n/default.ts 格式已更改,但您仍可通过运行以下命令将其转换为 `.properties` 文件格式: ``` cd /path/to/sonarqube-webapp/server/sonar-web # 安装依赖项,仅首次需要 yarn # 生成一个包含所有翻译键的 backward compatible .properties 文件 yarn generate-translation-keys ``` 请注意,为其他语言贡献翻译扩展的方式与之前相同。只是默认翻译的权威来源发生了变化。 ## 许可证 版权所有 © SonarSource Sàrl。 根据 [GNU 宽通用公共许可证,版本 3.0](https://www.gnu.org/licenses/lgpl.txt) 授权。
标签:AI工具, Clean Code, IPv6支持, JS文件枚举, LNA, pocsuite3, SOC Prime, SonarQube, 代码健康, 代码安全, 代码审查, 代码异味检测, 代码规范, 后台面板检测, 域名枚举, 安全专业人员, 开发工具, 开源框架, 技术债务, 技术质量管理, 持续集成, 测试用例, 漏洞枚举, 网络攻击检测, 自动化检查, 质量门, 软件测试, 错误基检测, 静态代码分析