Integrating SonarLint into IntelliJ IDEA for Pre‑Commit Code Quality Checks
This guide explains how to integrate SonarLint into IntelliJ IDEA to perform pre‑commit code quality checks, covering the tool’s objectives, the seven quality dimensions it assesses, required prerequisites, plugin installation steps, and detailed project and server configuration procedures.
1. Goal
Integrate Sonar code inspection into IDEA so that code can be checked before committing rather than after submission.
Sonar can evaluate code quality from seven dimensions, with developers typically focusing on the first five:
Non‑compliance with coding standards – enforced via tools such as PMD, Checkstyle, FindBugs.
Potential defects – detected using the same rule engines.
Poor complexity distribution – high complexity in files, classes, or methods makes them hard to modify and understand; without automated unit tests, changes may require extensive regression testing.
Duplication – copy‑paste code reduces quality; Sonar highlights heavily duplicated sections.
Insufficient or excessive comments – lack of comments harms readability, especially with staff turnover; too many comments waste developers' time.
Lack of unit tests – Sonar can easily report test coverage.
Poor design – Sonar can detect cycles, visualize package/class dependencies, enforce custom architecture rules, manage third‑party JARs, and assess coupling using metrics like LCOM4.
2. Prerequisites
SonarQube is already set up, and a JDK 8 environment is used (JDK 7 also works).
3. Install Plugin
In IDEA go to Settings → Plugins, search for “SonarLint”, install it, and restart the IDE.
4. Configure Project
1) Configure Server
Open the server configuration dialog, add the URL of the Sonar platform (usually an internal address).
2) Choose Project
After the server information is saved, the available Sonar projects are listed.
Once configured, the Sonar extension appears in the lower‑left corner of IDEA.
(END)
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.