Source: https://seerepo.com/r/SonarSource/sonarqube/built
Markdown source: https://seerepo.com/r/SonarSource/sonarqube/built.md
Description: sonarqube is a Java repo built with Spring, jakarta.servlet:jakarta.servlet-api, jakarta.inject:jakarta.inject-api, and…

# What is sonarqube built with?

sonarqube is a Java repo built with Spring, jakarta.servlet:jakarta.servlet-api, jakarta.inject:jakarta.inject-api, and org.apache.tomcat.embed:tomcat-embed-core. It reaches its data with org.mybatis:mybatis, signs people in with jjwt-impl, jjwt-jackson, kerb-simplekdc, spring-security-saml2-service-provider, org.springframework.security:spring-security-config, and 3 more, connects to GitHub, makes its content with org.apache.commons:commons-csv, jakarta.mail:jakarta.mail-api, and org.apache.velocity:velocity-engine-core, is tested with junit:junit, org.assertj:assertj-core, org.mockito:mockito-core, and org.jsoup:jsoup, deploys with jul-to-slf4j, log4j-over-slf4j, Prometheus, simpleclient_servlet, org.slf4j:slf4j-api, and 4 more, and uses com.hazelcast:hazelcast, com.zaxxer:HikariCP, org.apache.directory.server:apacheds-server-integ, and Elasticsearch. It has 895,063 written lines, with 2,813 test files.

Read on November 12, 2026, at commit 75e38d9.

Repository: https://github.com/SonarSource/sonarqube

## Backend

### The base

- **[Spring](https://seerepo.com/uses/spring)**: 113 files

### Data

- **com.hazelcast:hazelcast**: 16 files
- **[com.zaxxer:HikariCP](https://seerepo.com/uses/comzaxxer-hikaricp)**: 3 files
- **org.apache.directory.server:apacheds-server-integ**: 1 file

### Data access

- **org.mybatis:mybatis**: 114 files

### Sign-in

- **[jjwt-impl](https://seerepo.com/uses/jjwt-impl)**
- **[jjwt-jackson](https://seerepo.com/uses/jjwt-jackson)**
- **kerb-simplekdc**
- **spring-security-saml2-service-provider**
- **org.springframework.security:spring-security-config**: 18 files
- **[io.jsonwebtoken:jjwt-api](https://seerepo.com/uses/iojsonwebtoken-jjwt-api)**: 2 files
- **com.auth0:java-jwt**: 1 file
- **com.github.scribejava:scribejava-apis**: 1 file

### Services

- **[Elasticsearch](https://seerepo.com/uses/elasticsearch)**: 44 files · [server/sonar-webserver-monitoring/src/main/java/org/sonar/server/monitoring/ElasticSearchMetricTask.java, line 22](https://github.com/SonarSource/sonarqube/blob/75e38d9d1b02e56afe87022d3095885eb9d165b9/server/sonar-webserver-monitoring/src/main/java/org/sonar/server/monitoring/ElasticSearchMetricTask.java#L22)
- **[GitHub](https://seerepo.com/uses/github)**: 2 files · [server/sonar-alm-client/src/main/java/org/sonar/alm/client/RatioBasedRateLimitChecker.java, line 23](https://github.com/SonarSource/sonarqube/blob/75e38d9d1b02e56afe87022d3095885eb9d165b9/server/sonar-alm-client/src/main/java/org/sonar/alm/client/RatioBasedRateLimitChecker.java#L23)

## Support

### The base

- **[jakarta.servlet:jakarta.servlet-api](https://seerepo.com/uses/jakartaservlet-jakartaservlet-api)**: 48 files
- **jakarta.inject:jakarta.inject-api**: 35 files
- **org.apache.tomcat.embed:tomcat-embed-core**: 2 files

### Content

- **org.apache.commons:commons-csv**: 2 files
- **jakarta.mail:jakarta.mail-api**: 1 file
- **org.apache.velocity:velocity-engine-core**: 1 file

### Testing

- **junit:junit**: 2,573 files
- **org.assertj:assertj-core**: 2,290 files
- **org.mockito:mockito-core**: 1,201 files
- **[org.jsoup:jsoup](https://seerepo.com/uses/orgjsoup-jsoup)**: 4 files

### Deploy

- **[jul-to-slf4j](https://seerepo.com/uses/jul-to-slf4j)**
- **log4j-over-slf4j**
- **[Prometheus](https://seerepo.com/uses/prometheus)**
- **simpleclient_servlet**
- **[org.slf4j:slf4j-api](https://seerepo.com/uses/orgslf4j-slf4j-api)**: 342 files
- **[ch.qos.logback:logback-classic](https://seerepo.com/uses/chqoslogback-logback-classic)**: 15 files
- **[ch.qos.logback:logback-core](https://seerepo.com/uses/chqoslogback-logback-core)**: 9 files
- **[Apache](https://seerepo.com/uses/apache)**: 3 files
- **ch.qos.logback.access:logback-access-common**: 1 file

### Tools

- **jsr305**
- **spotbugs-annotations**

### Other

- **bcpkix-jdk18on**
- **bcprov-jdk18on**
- **commons-codec**
- **commons-io**
- **github-api**
- **json-simple**
- **logging-interceptor**
- **lz4-java**
- **okhttp**
- **org.apache.commons:commons-lang3**: 282 files
- **[Google](https://seerepo.com/uses/google)**: 109 files
- **com.fasterxml.jackson.core:jackson-databind**: 27 files
- **jakarta.annotation:jakarta.annotation-api**: 11 files
- **org.apache.httpcomponents:httpclient**: 5 files
- **org.apache.commons:commons-exec**: 3 files
- **joda-time:joda-time**: 2 files
- **org.apache.mina:mina-core**: 1 file
- **org.json:json**: 1 file
- **org.yaml:snakeyaml**: 1 file

## Other repos with a similar stack

- [apache/incubator-seata](https://seerepo.com/r/apache/incubator-seata/built): Spring, com.zaxxer:HikariCP, jakarta.servlet:jakarta.servlet-api, jjwt-impl, jjwt-jackson, io.jsonwebtoken:jjwt-api, Prometheus, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, ch.qos.logback:logback-core, Apache · [Compare](https://seerepo.com/compare/apache/incubator-seata/vs/SonarSource/sonarqube)
- [alibaba/nacos](https://seerepo.com/r/alibaba/nacos/built): com.zaxxer:HikariCP, org.apache.tomcat.embed:tomcat-embed-core, jjwt-impl, jjwt-jackson, jul-to-slf4j, log4j-over-slf4j, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, ch.qos.logback:logback-core, Apache · [Compare](https://seerepo.com/compare/alibaba/nacos/vs/SonarSource/sonarqube)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): Spring, jakarta.servlet:jakarta.servlet-api, jjwt-impl, jjwt-jackson, spring-security-saml2-service-provider, io.jsonwebtoken:jjwt-api, jakarta.mail:jakarta.mail-api, ch.qos.logback:logback-core, Apache · [Compare](https://seerepo.com/compare/SonarSource/sonarqube/vs/Stirling-Tools/Stirling-PDF)
- [spring-projects/spring-boot](https://seerepo.com/r/spring-projects/spring-boot/built): Spring, com.hazelcast:hazelcast, com.zaxxer:HikariCP, jakarta.servlet:jakarta.servlet-api, spring-security-saml2-service-provider, jakarta.mail:jakarta.mail-api, jul-to-slf4j, org.slf4j:slf4j-api, ch.qos.logback:logback-classic · [Compare](https://seerepo.com/compare/SonarSource/sonarqube/vs/spring-projects/spring-boot)
- [chinabugotech/hutool](https://seerepo.com/r/chinabugotech/hutool/built): Spring, com.zaxxer:HikariCP, jakarta.servlet:jakarta.servlet-api, jjwt-impl, jakarta.mail:jakarta.mail-api, org.apache.velocity:velocity-engine-core, org.slf4j:slf4j-api, Apache · [Compare](https://seerepo.com/compare/chinabugotech/hutool/vs/SonarSource/sonarqube)
- [thingsboard/thingsboard](https://seerepo.com/r/thingsboard/thingsboard/built): Spring, com.auth0:java-jwt, log4j-over-slf4j, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, ch.qos.logback:logback-core, Apache · [Compare](https://seerepo.com/compare/SonarSource/sonarqube/vs/thingsboard/thingsboard)

## Frequently asked questions

### What language is sonarqube written in?

sonarqube is written in Java, with 895,063 written lines.

### What framework does sonarqube use?

sonarqube is built with Spring, jakarta.servlet:jakarta.servlet-api, jakarta.inject:jakarta.inject-api, and org.apache.tomcat.embed:tomcat-embed-core.

### What does sonarqube sign people in with?

sonarqube signs people in with jjwt-impl, jjwt-jackson, kerb-simplekdc, spring-security-saml2-service-provider, org.springframework.security:spring-security-config, io.jsonwebtoken:jjwt-api, com.auth0:java-jwt, and com.github.scribejava:scribejava-apis.

### What services does sonarqube use?

sonarqube connects to GitHub and uses com.hazelcast:hazelcast, com.zaxxer:HikariCP, org.apache.directory.server:apacheds-server-integ, and Elasticsearch.

The proof: [server/sonar-alm-client/src/main/java/org/sonar/alm/client/RatioBasedRateLimitChecker.java, line 23](https://github.com/SonarSource/sonarqube/blob/75e38d9d1b02e56afe87022d3095885eb9d165b9/server/sonar-alm-client/src/main/java/org/sonar/alm/client/RatioBasedRateLimitChecker.java#L23)

### Does sonarqube have tests?

Yes. sonarqube has 2,813 test files and is tested with junit:junit, org.assertj:assertj-core, org.mockito:mockito-core, and org.jsoup:jsoup.

### Which repos have a stack like sonarqube's?

The ones that share most of its stack: apache/incubator-seata, alibaba/nacos, and Stirling-Tools/Stirling-PDF.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
