SonarQube 不仅能够展示应用程序的健康状况,还能突出显示新引入的问题。通过设置质量门(Quality Gate),您可以实现干净代码,从而系统地提升代码质量。
对于支持类问题(“我该怎么做?”、“我遇到了这个错误,为什么?”等),请先阅读文档,然后前往 SonarSource 社区。您的问题很可能已经有答案了!🤓
请注意,该论坛是一个社区,因此请保持基本的礼貌用语(“您好”、“谢谢”等)。如果您的帖子没有得到回复,请至少等待三天再顶帖。这里没有人工客服随时在线。😄
如果您希望看到新功能或报告 Bug,请在论坛中新建一个主题。
请注意,我们目前并未积极寻求功能贡献。事实上,SonarSource 外部的人员很难完全符合我们的路线图和期望。因此,我们通常只接受细微的外观修改和拼写修正。
如果您仍想提交代码贡献,请为本仓库创建拉取请求。请说明您做出此更改的动机:您想解决什么问题,或者您想做出哪些改进。
请确保遵守我们的代码风格,并且所有测试都已通过(每次拉取请求都会执行 Travis 构建)。
想为 SonarSource 产品做贡献?我们正在寻找聪明、热情且技术熟练的人才,帮助我们构建世界一流的代码质量解决方案。请查看我们当前的招聘职位!
要在本地构建源代码,请遵循以下说明。
-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
如果该项目从未构建过,请照常构建(参见上一节),或使用更快的命令:
./gradlew ide
然后在 IntelliJ 或 Eclipse 中将根文件 build.gradle 作为项目打开。
| ./gradlew 命令 | 描述 |
|---|---|
dependencies | 列出依赖项 |
spotlessApply | 通过应用 HEADER 修复源文件头 |
wrapper --gradle-version 5.2.1 | 升级 wrapper |
SonarQube 的 UI(我们称之为 webapp)位于另一个仓库中:sonarqube-webapp。
在构建 sonarqube 仓库时,webapp 会自动从 Maven Central 作为依赖项下载,这让您可以轻松地仅贡献后端更改,而无需关心 webapp。
但如果您的贡献还包含 UI 更改,则必须克隆 sonarqube-webapp 仓库,在其中进行更改,在本地构建它,然后使用 WEBAPP_BUILD_PATH 环境变量构建 sonarqube 仓库,以指向您的自定义 UI 构建。
以下是一个示例:
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
# 生成包含所有翻译键的向后兼容 .properties 文件
yarn generate-translation-keys
请注意,贡献其他语言的翻译扩展仍然与以前相同。只是默认翻译的“事实来源”发生了变化。
版权所有(C)SonarSource Sàrl。
根据 GNU 宽通用公共许可证第 3.0 版 授权。