> For the complete documentation index, see [llms.txt](https://docs.sonarsource.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sonarsource.com/sonarqube-server/10.4/analyzing-source-code/overview.md).

# Overview

SonarQube Server 10.4 can perform analysis on 20+ different languages.

{% hint style="info" %}
**For AI agents:** You're in the SonarQube Server 10.4 documentation. For a list of all 10.4 pages, see the [SonarQube Server 10.4 page index](https://2155789048-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FL4urx4YsPFYDefLTrxao%2Fuploads%2FlBlJSWAzuhYo7WEorlJX%2Fsonarqube-server-10.4-llms.txt?alt=media). For the whole site, see the [page index](https://docs.sonarsource.com/llms.txt) or the [full text](https://docs.sonarsource.com/llms-full.txt). For another version, replace 10.4 in the URL with that version. The [latest version](https://docs.sonarsource.com/sonarqube-server/) has no version number in its URL.
{% endhint %}

Once the SonarQube Server platform has been installed, you’re ready to install a scanner. You must install and configure the scanner that is most appropriate for your needs depending on your build tool. Then, you will start the analysis of your project by invoking the scanner in your CI pipeline after you build and before you do any sort of archiving or deployment. The scanner installation and invoking are explained in detail in the documentation of the corresponding scanner:

* Gradle - [SonarScanner for Gradle](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarscanner-for-gradle.md)
* .NET - [SonarScanner for .NET](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarscanner-for-dotnet.md)
* Maven - [SonarScanner for Maven](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarscanner-for-maven.md)
* Jenkins - [Jenkins extension for SonarQube Server](/sonarqube-server/10.4/analyzing-source-code/scanners/jenkins-extension-sonarqube.md)
* Azure DevOps - [SonarQube extension for Azure DevOps](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarqube-extension-for-azure-devops.md)
* Ant - [SonarScanner for Ant](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarscanner-for-ant.md)
* Anything else - [SonarScanner CLI](/sonarqube-server/10.4/analyzing-source-code/scanners/sonarscanner.md)

You may use one of the following options:

* You install the scanner on your CI/CD host and, when you start your first analysis, the corresponding project is automatically created in SonarQube Server.
* You create first a project in the SonarQube Server UI. During the creation, you will be asked about the CI tool you are using and you will be guided through a tutorial to install the appropriate scanner on your CI/CD host.\
  To create a project, you use the **Create Project** button on the **Projects** page, which is visible to users with project creation rights.

{% hint style="info" %}
SonarQube Server integrations are supported for popular DevOps Platforms: GitHub Enterprise and GitHub.com, BitBucket Server, Azure Devops Server and Azure DevOps Services.
{% endhint %}

## What does analysis produce? <a href="#analysis-product" id="analysis-product"></a>

SonarQube Server can analyze up to 29 different languages depending on your edition. The outcome of this analysis will be quality measures and issues (instances where coding rules were broken). However, what gets analyzed will vary depending on the language:

* On all languages, "blame" data will automatically be imported from supported SCM providers. [SCM integration](/sonarqube-server/10.4/analyzing-source-code/scm-integration.md). Other providers require additional plugins.
* On all languages, a static analysis of source code is performed (Java files, COBOL programs, etc.)
* For certain languages, the static analysis should be done on compiled code ( .class files in Java, .dll files in C#, etc.)

## Will all files be analyzed? <a href="#files-analyzed" id="files-analyzed"></a>

By default, only files that are recognized by your edition of SonarQube Server are loaded into the project during analysis. For example, if you’re using SonarQube Community Build, which includes analysis of Java and JavaScript, but not C++, all `.java` and `.js` files would be loaded, but `.cpp` files would be ignored.

## What about branches and pull requests? <a href="#branches-and-pull-requests" id="branches-and-pull-requests"></a>

*Developer Edition* adds the ability to analyze your project’s [Branch analysis](/sonarqube-server/10.4/analyzing-source-code/branches/branch-analysis.md) and [Pull request analysis](/sonarqube-server/10.4/analyzing-source-code/pull-request-analysis.md) as well as the ability to automatically report your pull request analysis to your DevOps platform interface.

## What happens during analysis? <a href="#analysis" id="analysis"></a>

During analysis, data is requested from the server, the files provided to the analysis are analyzed, and the resulting data is sent back to the server at the end in the form of a report, which is then analyzed asynchronously server-side.

Analysis reports are queued and processed sequentially, so it is quite possible that for a brief period after your analysis log shows completion, the updated values are not visible in your SonarQube Server project. However, you will be able to tell what’s going on because an icon will be added on the project homepage to the right of the project name. Mouse over it for more detail (and links if you’re logged in with the proper permissions).

![Screenshot of SonarQube Server showing an analysis is in progress.](https://2155789048-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FL4urx4YsPFYDefLTrxao%2Fuploads%2Fgit-blob-ff220be77e3dd3edea2dc3f6d2b0db555ac20d1c%2F43d9d1f3f24fa482d256ad9c87345b5427bb72be.jpg?alt=media)

Screenshot of SonarQube Server showing an analysis is in progress.

The icon goes away once processing is complete, but if analysis report processing fails for some reason, the icon changes:

![Screenshot of SonarQube Server showing the last analysis has failed.](https://2155789048-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FL4urx4YsPFYDefLTrxao%2Fuploads%2Fgit-blob-73bfd52e9ff1c4d9b274e2e8201746f7f3b4c39f%2Fed65287d290de6c4709785184fdb8d2246b9687d.jpg?alt=media)

Screenshot of SonarQube Server showing the last analysis has failed.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sonarsource.com/sonarqube-server/10.4/analyzing-source-code/overview.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
