Phân tích code với SonarQube Scanner

Trong bài viết trước, mình đã hướng dẫn các bạn cách cài đặt SonarQube Scanner. Giờ là lúc, chúng ta sẽ thử sử dụng công cụ này để phân tích code của chúng ta xem sao các bạn nhé!

Để làm ví dụ cho bài viết này, mình sẽ lấy project ví dụ trong bài viết Sử dụng JPA trong Spring MVC để làm ví dụ. Các bạn lưu ý là vì SonarQube Scanner sẽ sử dụng byte code của class Java để phân tích code Java nên các bạn cần chạy “mvn compile” trong project này để compile source code Java của chúng ta thành những tập tin class.

Các bạn cũng phải start một SonarQube system lên nhé. Của mình đang chạy SonarQube ở địa chỉ: http://localhost:9000/

Phân tích code với SonarQube Scanner

OK, bắt đầu thôi các bạn.

Đầu tiên, trong thư mục của project, các bạn cần tạo mới một tập tin cấu hình cho SonarQube.

Tập tin đó có tên là sonar-project.properties, nội dung của tập tin này cơ bản sẽ như sau:

Trong đó, các properties “sonar.projectkey”, “sonar.projectName”, “sonar.projectVersion” là những properties định nghĩa các thông tin về project của chúng ta. Các bạn lưu ý là property “sonar.projectKey” được dùng để identify các project khác nhau trong hệ thống SonarQube nên giá trị của property này phải không trùng với các project khác.

Property “sonar.sources” định nghĩa location của tập tin sonar-project.properties. Hiện tại mình để tập tin này trong thư mục project nên mình set giá trị của nó là “.”.

Property “sonar.java.binaries” như mình nói ở trên, sẽ định nghĩa đường dẫn tới các tập tin byte code của Java.

Bây giờ, các bạn hãy mở Terminal trên macOS và Linux hoặc Console trên Window rồi đi tới thư mục của project này

Chúng ta chỉ cần gọi dòng lệnh sau:

thì SonarQube Scanner sẽ tự động scan project của chúng ta và phân tích code của nó.

Kết quả:

Phân tích code với SonarQube Scanner

Lúc này, nếu các bạn refresh lại SonarQube system, các bạn sẽ thấy project của chúng ta được hiển thị ở đây:

Phân tích code với SonarQube Scanner

Như các bạn thấy, project của chúng ta có 0 bug, 0 lỗ hổng, 1 code cần xem xét, phần Coverage liên quan tới Unit Test Coverage, 0 duplicate code và ngôn ngữ chúng ta đang sử dụng trong project này là XML và Java.

Nếu các bạn muốn chỉ định rõ ngôn ngữ mà các bạn muốn SonarQube Scanner phân tích thì các bạn có thể khai báo thêm property “sonar.language” với giá trị là ngôn ngữ mà các bạn muốn phân tích. Ví dụ ở đây mình muốn chỉ phân tích code Java thôi thì mình có thể thêm vào tập tin sonar-project.properties property này như sau:

Chạy lại câu lệnh:

các bạn sẽ thấy kết quả như sau:

Phân tích code với SonarQube Scanner

Click vào project “Spring MVC JPA”, các bạn sẽ thấy chi tiết như sau:

Phân tích code với SonarQube Scanner

Hiện tại project của chúng ta có 1 vấn đề Code Smells, các bạn có thể click vào nó để xem vấn đề là gì:

Phân tích code với SonarQube Scanner

Chi tiết hơn nữa:

Phân tích code với SonarQube Scanner

Rất chi tiết phải không các bạn?

Dựa vào những report trên, các bạn có thể biết code của chúng ta hiện đang có những vấn đề gì, cần chỉnh sửa ra sao. Rất hay phải không các bạn?

Chia sẽ bài viết này ...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

One thought on “Phân tích code với SonarQube Scanner

Add Comment