[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4104":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":15,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":30,"discoverSource":31},4104,"sonarqube","SonarSource\u002Fsonarqube","SonarSource","Continuous Inspection","http:\u002F\u002Fwww.sonarqube.org",null,"Java",10650,2193,338,2,0,26,121,16,45,"GNU Lesser General Public License v3.0",false,"master",[25,5,26],"code-quality","static-analysis","2026-06-12 02:00:58","# SonarQube [![Build](https:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonarqube\u002Factions\u002Fworkflows\u002Fbuild.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonarqube\u002Factions\u002Fworkflows\u002Fbuild.yml) [![Quality Gate Status](https:\u002F\u002Fsonarcloud.io\u002Fapi\u002Fproject_badges\u002Fmeasure?project=sonarqube&metric=alert_status)](https:\u002F\u002Fsonarcloud.io\u002Fsummary\u002Fnew_code?id=sonarqube) [![AI Code Assurance](https:\u002F\u002Fnext.sonarqube.com\u002Fsonarqube\u002Fapi\u002Fproject_badges\u002Fai_code_assurance?project=org.sonarsource.sonarqube%3Asonarqube-private&token=sqb_c0e2fa9ac4ef89f9a8403c6ba235e108ceb1dce1)](https:\u002F\u002Fnext.sonarqube.com\u002Fsonarqube\u002Fdashboard?id=sonarqube)\n\n## Continuous Inspection\n\nSonarQube provides the capability to not only show the health of an application but also to highlight issues newly introduced. With a Quality Gate in place, you can [achieve Clean Code](https:\u002F\u002Fwww.sonarsource.com\u002Fsolutions\u002Fclean-code\u002F) and therefore improve code quality systematically.\n\n## Links\n\n- [Website](https:\u002F\u002Fwww.sonarsource.com\u002Fproducts\u002Fsonarqube)\n- [Download](https:\u002F\u002Fwww.sonarsource.com\u002Fproducts\u002Fsonarqube\u002Fdownloads)\n- [Documentation](https:\u002F\u002Fdocs.sonarsource.com\u002Fsonarqube)\n- [Webapp source code](https:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonarqube-webapp)\n- [X](https:\u002F\u002Ftwitter.com\u002FSonarQube)\n- [SonarSource](https:\u002F\u002Fwww.sonarsource.com), author of SonarQube\n- [Issue tracking](https:\u002F\u002Fjira.sonarsource.com\u002Fbrowse\u002FSONAR\u002F), read-only. Only SonarSourcers can create tickets.\n- [Responsible Disclosure](https:\u002F\u002Fcommunity.sonarsource.com\u002Ft\u002Fresponsible-vulnerability-disclosure\u002F9317)\n- [Next](https:\u002F\u002Fnext.sonarqube.com\u002Fsonarqube) instance of the next SonarQube version\n\n## Have Questions or Feedback?\n\nFor support questions (\"How do I?\", \"I got this error, why?\", ...), please first read the [documentation](https:\u002F\u002Fdocs.sonarsource.com\u002Fsonarqube) and then head to the [SonarSource Community](https:\u002F\u002Fcommunity.sonarsource.com\u002Fc\u002Fhelp\u002Fsq\u002F10). The answer to your question has likely already been answered! 🤓\n\nBe aware that this forum is a community, so the standard pleasantries (\"Hi\", \"Thanks\", ...) are expected. And if you don't get an answer to your thread, you should sit on your hands for at least three days before bumping it. Operators are not standing by. 😄\n\n## Contributing\n\nIf you would like to see a new feature or report a bug, please create a new thread in our [forum](https:\u002F\u002Fcommunity.sonarsource.com\u002Fc\u002Fsq\u002F10).\n\nPlease be aware that we are not actively looking for feature contributions. The truth is that it's extremely difficult for someone outside SonarSource to comply with our roadmap and expectations. Therefore, we typically only accept minor cosmetic changes and typo fixes.\n\nWith that in mind, if you would like to submit a code contribution, please create a pull request for this repository. Please explain your motives to contribute this change: what problem you are trying to fix, what improvement you are trying to make.\n\nMake sure that you follow our [code style](https:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonar-developer-toolset#code-style) and all tests are passing (Travis build is executed for each pull request).\n\nWilling to contribute to SonarSource products? We are looking for smart, passionate, and skilled people to help us build world-class code-quality solutions. Have a look at our current [job offers here](https:\u002F\u002Fwww.sonarsource.com\u002Fcompany\u002Fjobs\u002F)!\n\n## Building\n\nTo build sources locally follow these instructions.\n\n### Requirements\n\n- Java 17 - Required to build the project\n- Native Git - Must be installed and available in your PATH\n- npm - Required for building\n- Tests - Can be disabled if needed by adding `-x test` to the gradle command (useful if you just want to build without running tests)\n\n### Build and Run Unit Tests\n\nExecute from the project base directory:\n\n    .\u002Fgradlew build\n\nThe zip distribution file is generated in `sonar-application\u002Fbuild\u002Fdistributions\u002F`. Unzip it and start the server by executing:\n\n    # on Linux\n    bin\u002Flinux-x86-64\u002Fsonar.sh start\n    # or on MacOS\n    bin\u002Fmacosx-universal-64\u002Fsonar.sh start\n    # or on Windows\n    bin\\windows-x86-64\\StartSonar.bat\n\n### Open in IDE\n\nIf the project has never been built, then build it as usual (see previous section) or use the quicker command:\n\n    .\u002Fgradlew ide\n\nThen open the root file `build.gradle` as a project in IntelliJ or Eclipse.\n\n### Gradle Hints\n\n| .\u002Fgradlew command                | Description                               |\n| -------------------------------- | ----------------------------------------- |\n| `dependencies`                   | list dependencies                         |\n| `licenseFormat --rerun-tasks`    | fix source headers by applying HEADER.txt |\n| `wrapper --gradle-version 5.2.1` | upgrade wrapper                           |\n\n## Building with UI changes\n\nThe SonarQube UI (or webapp as we call it), is located in another repository: [sonarqube-webapp](https:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonarqube-webapp).\n\nWhen building the `sonarqube` repository, the webapp is automatically downloaded from Maven Central as a dependency, it makes it easy for you to contribute backend changes without having to care about the webapp.\n\nBut if your contribution also contains UI changes, you must clone the `sonarqube-webapp` repository, do your changes there, build it locally and then build the `sonarqube` repository using the `WEBAPP_BUILD_PATH` environment variable to target your custom build of the UI.\n\nHere is an example of how to do it:\n\n```bash\ncd \u002Fpath\u002Fto\u002Fsonarqube-webapp\u002Fserver\u002Fsonar-web\n# do your changes\n\n# install dependencies, only needed the first time\nyarn\n\n# build the webapp\nyarn build\n\n\ncd \u002Fpath\u002Fto\u002Fsonarqube\n\n# build the sonarqube repository using the custom build of the webapp\nWEBAPP_BUILD_PATH=\u002Fpath\u002Fto\u002Fsonarqube-webapp\u002Fserver\u002Fsonar-web\u002Fbuild\u002Fwebapp .\u002Fgradlew build\n```\n\nYou can also target a specific version of the webapp by updating the `webappVersion` property in the `.\u002Fgradle.properties` file and then building the `sonarqube` repository normally.\n\n## Translations files\n\nHistorically our translations were stored in `sonar-core\u002Fsrc\u002Fmain\u002Fresources\u002Forg\u002Fsonar\u002Fl10n\u002Fcore.properties`, but this file is now deprecated and not updated anymore.\nDefault translations (in English) are now defined in the webapp repository, here:\nhttps:\u002F\u002Fgithub.com\u002FSonarSource\u002Fsonarqube-webapp\u002Fblob\u002Fmaster\u002Flibs\u002Fsq-server-shared\u002Fsrc\u002Fl10n\u002Fdefault.ts\n\nThe format has changed but you can still have it as a `.properties` file format by running the following command:\n\n```bash\ncd \u002Fpath\u002Fto\u002Fsonarqube-webapp\u002Fserver\u002Fsonar-web\n\n# install dependencies, only needed the first time\nyarn\n\n# generate a backward compatible .properties file with all the translation keys\nyarn generate-translation-keys\n```\n\nNote that contributing extensions for translations into other languages still work the same way as before. It's just the source of truth for the default translations that changed.\n\n## License\n\nCopyright (C) SonarSource Sàrl.\n\nLicensed under the [GNU Lesser General Public License, Version 3.0](https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Flgpl.txt)\n","SonarQube 是一个持续代码质量检查工具，能够帮助开发者不仅展示应用程序的健康状况，还能突出显示新引入的问题。其核心功能包括代码质量分析、静态代码审查以及通过质量门禁实现系统性的代码质量提升。基于Java开发，SonarQube支持多种编程语言和框架，适用于软件开发过程中任何需要保证代码质量和安全性的场景，如敏捷开发流程中的持续集成\u002F持续部署（CI\u002FCD）环境。它提供了一个全面的平台来监控项目的技术债务，并促进团队之间的协作以提高软件的整体质量。","2026-06-11 02:58:28","top_language"]