Eclipse | Team features | Connected Mode

On this page

Connected Mode

Connecting SonarLint to SonarQube or SonarCloud is the first step in setting up the Sonar Solution, to take advantage of having consistent issues reported on both sides. Setting up Connected Mode will permit the transmission of information SonarLint needs, such as URLs and user credentials or file exclusions and marked issues, to communicate with SonarQube or SonarCloud. When binding your local workspace folder to your SonarQube or SonarCloud project(s), SonarLint will try to match, as much as possible, the same rules and settings as found on the server.

While in Connected Mode, SonarLint receives notifications from SonarQube/SonarCloud about your Quality Gate changes and new issues. Smart notifications can be enabled or disabled from the UI while creating or editing the connection settings. 

Benefits

Free and open-source versions of SonarQube and SonarCloud are available to work in Connected Mode. In SonarCloud, it’s always free to analyze your publicly accessible projects; paid plans are required only if linking to a private repository.

Prerequisites and supported languages

Having a SonarQube 8.9+ project or a SonarCloud project is required to run SonarLint for Eclipse in Connected Mode. The Rules and languages page has a complete overview outlining which additional rules are available when using Connected Mode.

Branch awareness

Branch awareness allows SonarLint to consider the branch currently checked out in the IDE and synchronize it with the most appropriate branch from the server; we call this branch matching.

In Connected Mode, SonarLint synchronizes some data from the issues that were found on the server, such as the issue's status and resolution. It is important that SonarLint knows on which branch the user is at that moment in order to sync the local analysis with the correct branch analyzed by the server.

SonarLint for Eclipse only supports Git and the Git branch name with regard to branch matching; to do this, Eclipse’s relies on the EGit project. 

If there is no EGit, SonarLint considers that there is no source code management (SCM) provider. Some distributions for Java or Python, for example, come with packages of bundles preinstalled, but you can also install the needed components. 

In addition, your project must be under Git source control; simply installing EGit is not enough to take advantage of the Branch awareness feature. Git source control is necessary to avoid false expectations, for example, from some Cobol IDE users. See the EGit documentation for more information.

Checking which branches are analyzed on the server

In SonarQube, open the highlighted drop-down list shown below (as it looks in SonarQube) for a list of analyzed branches and pull requests.

A view of your analyzed branches and pull request in SonarQube.

To analyze branches other than master|main , please check the SonarQube or SonarCloud documentation about branch analysis.

How SonarLint selects which branch to sync

SonarLint deploys these three methods to choose which branch (in SonarQube or on SonarCloud) to sync with the local analysis.

Exact match

Branches with the same name are considered the same branch. If the branch that is currently checked out locally is analyzed on the server, SonarLint will pick this branch for synchronization. 

Closest branch

SonarLint will consider all local branches that also exist on the server. For each branch, SonarLint will compute the distance between the current HEAD and the branch by the count of commits. The closest branch will be kept. In case the number of commits is the same for two or more branches and the main branch is among them, it will be preferred; else the tie will be broken with a random choice (from the list of equidistance branches).

Default to main branch

All other cases will default to the branch marked as "main" on the server. For example, if there is an error in reading the branch, or if there is no Git repo, SonarLint will default to the main branch.

Long and short-lived branches

When using Connected Mode with SonarCloud, issues on short-lived branches are not synchronized. When an issue is marked in SonarCloud accepted or false positive on a short-lived branch, SonarLint will still show that issue in the IDE.

SonarQube does not distinguish between long- and short-lived branches therefore, all issue resolutions are recognized.

Connection setup

SonarLint for Eclipse offers a Sonar connection wizard to help you set up Connected Mode; it can be accessed in two different ways:

  • Go to File > New > Other… to open Eclipse’s Select a wizard menu. Then, find SonarLint > New SonarQube/SonarCloud Connection and select Next.
  • Or, Right-click in the SonarLint Bindings tasks view tab and select New Connection…. This method will start the wizard right away.

Choose either SonarCloud or SonarQube, then select the Next button to continue:

Automatic setup

SonarQube 10.4+ offers the easiest way to set up Connected Mode: simply use the Open in IDE feature from SonarQube. You must trust the SonarQube server to store a token for the connection, and it's best if you already have the project open in your IDE. 

Check the Troubleshooting article if something doesn’t work right or follow the instructions below to manually create a SonarQube connection.

Create a new SonarQube Connection

Choose SonarQube and add server details to set up your connection with SonarLint.

1. When you select SonarQube, you will need to enter the server URL before selecting Next to proceed. The default URL is http://localhost:9000, but your URL might differ.

2. Choose your authentication method & authenticate:

  • Token: generate a user token in your SonarQube instance. This is the preferred way to avoid the compromise of your username & password. In SonarQube, go to https://<your-sonarqube-url>/account/security/ to generate a new user token.
  • Username + Password: this method can be used for a SonarQube connection only. It lets SonarLint use your credentials directly but is not the recommended method due to potential security risks.

3. Enter a Connection name so that you can find it later in the SonarLint Bindings view window, and click Next to continue.

4. Then, choose if you want to receive Notifications; you have the option to allow SonarQube or SonarCloud to send Smart Notifications to the IDE. Smart notifications make you aware of changes made on the server. Finally, select Finish to complete the Connection wizard.

The final steps involve binding your local project to the project on the server.

Create a new SonarCloud Connection

Choose SonarCloud and add server details to set up your connection with SonarLint.

1. You will be prompted to add a user Token generated by SonarCloud. If you don't already have a token, clicking the Generate token button will open the https://sonarcloud.io/account/security page in your default browser. Select Next to continue.

2. Start typing the name of your SonarCloud Organization and choose your organization from the filtered list that appears; your Organization Key will automatically populate the field. Select Next to continue.

3. Enter a Connection name so that you can find it later in the SonarLint Bindings view window. Click Next to continue. Connection Name is a friendly name for your connections.

4. Then, choose if you want to receive Notifications; you have the option to allow SonarQube or SonarCloud to send Smart Notifications to the IDE. Smart notifications make you aware of changes made on the server. Finally, select Finish to complete the Connection wizard. 

The final steps involve binding your local project to the project on the server.

Once set up, SonarLint will automatically check your SonarQube or SonarCloud organization’s project list against open or newly opened projects in your workspace to suggest a binding.

SonarLint will automatically prompt you to bind your project to the server.

Project binding

If you just created a new connection, the connection wizard will transition into a binding wizard where you can add projects that you want to bind. Or, you can select your SQ or SC server in the SonarLint Bindings tab, right-click, and select Bind Projects… to open the wizard, then Add… to open the Project selection window.

  1. The Project selection window presents a list of projects open in the Eclipse workspace. 
  2. In the next window, start typing the name of a project you have on the server; double-click on the matching project, and the wizard will grab and load the Project Key.
  3. Click Finish and check the progress bar in the lower right corner.

View connections

Connections and their bindings can be retrieved in the SonarLint Bindings view tab which is found by navigating to the File Menu > Window > Show View > Other... > SonarLint > SonarLint Bindings:

Right-clicking on a connection will open a tooltip to edit or delete the connection and can be useful, for example, to update credentials and bindings if they have changed.

You can view and manage your connections and bindings in the SonarLint Bindings view.

Right-clicking on a connection will reveal an option to select Update All Project Bindings.

SonarLint-SonarQube version support policy

SonarLint enables users to establish a connection to the latest SonarQube version and to the latest LTS version. When a new LTS version is released (approximately every 18 months), we still enable connecting SonarLint to the previous LTS version for a certain period of time (currently 12 months after the latest LTS release) to allow enough time for organizations to upgrade their SonarQube version. 

For more information about long-term support of SonarQube, check out our page describing "what is an LTS". And, to review IDE-specific requirements, please check the respective pages of the documentation as listed in the next paragraph.

⚠️ The 8.9LTS reached its support expiration date (in November ’23).

Notifications

When you are using Connected Mode and connected to the server, you can be notified in your IDE with smart notifications as soon as something appears on the server that something failed, or when the Sonar Quality Profile is updated, for example. The notification will include a link to call back to SonarQube or SonarCloud where you can learn more about the issues that were introduced. Sonar Smart Notifications are available in all editions of SonarQube and SonarCloud.

Connected Mode allows SonarQube to send smart alerts to individuals or teams as soon as something appears on the server that something failed, when new issues are discovered or when the Sonar Quality Profile is updated, for example. With everyone in the loop, issues can be addressed promptly, improving the overall software quality and delivery. The notification will include a link to call back to SonarQube or SonarCloud where you can learn more about the issues that were introduced. 

You'll receive smart notifications in your IDE when:

  • the quality gate status of a project open in your IDE changes (see the SonarQube or SonarCloud documentation for details about using quality gates in your project)
  • a SonarQube or SonarCloud analysis raises new issues that you've introduced in a project open in your IDE

You can activate or deactivate smart notifications in SonarLint on the IDE side on a server-by-server basis.

Sonar Smart Notifications are available in all editions of SonarQube and SonarCloud.

Activation and Deactivation of Sonar Smart Notifications occurs in the IDE during the binding process. To change your notification settings, go to the SonarLint Bindings view, right-click the connection you want to change, and select Edit Connections…

More on how to manage Smart Notifications in SonarLint for Eclipse will be coming soon...

© 2008-2024 SonarSource SA. All rights reserved. SONAR, SONARSOURCE, SONARLINT, SONARQUBE, SONARCLOUD, and CLEAN AS YOU CODE are trademarks of SonarSource SA.

Creative Commons License