SonarSource/sonarqube
GitHub: SonarSource/sonarqube
SonarQube 是一个开源的持续代码质量检查工具,帮助开发团队自动发现代码缺陷、安全漏洞和设计问题,通过质量门实现干净代码。
Stars: 10632 | Forks: 2190
# SonarQube [](https://github.com/SonarSource/sonarqube/actions/workflows/build.yml) [](https://sonarcloud.io/summary/new_code?id=sonarqube) [](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, 代码健康, 代码安全, 代码审查, 代码异味检测, 代码规范, 后台面板检测, 域名枚举, 安全专业人员, 开发工具, 开源框架, 技术债务, 技术质量管理, 持续集成, 测试用例, 漏洞枚举, 网络攻击检测, 自动化检查, 质量门, 软件测试, 错误基检测, 静态代码分析