2013-07-30 55 views
5

Tôi đang tạo một plugin mới cho SonarQube cho phép nhà phát triển thực hiện phân tích mã tĩnh trên mã ESQL.SonarQube - trợ giúp tạo plugin ngôn ngữ mới

Sử dụng Maven Tôi có thể xây dựng một trình bao của một plugin, tạo ra tệp JAR mà tôi có thể đặt vào đúng thư mục để nó được thêm vào SonarQube.

Giai đoạn tiếp theo là viết các lớp Java cho các quy tắc, tuy nhiên tôi không chắc chắn về những gì và vị trí của chúng. Tôi đang sử dụng ví dụ từ kho lưu trữ GIT sau: https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

Tôi chỉ cần tạo một gói mới với một số lớp học? Và làm thế nào để tôi thực sự quy tắc?

Trả lời

3

Nếu bạn muốn viết công cụ quy tắc cho ngôn ngữ ESQL, điều này có nghĩa là trước tiên bạn phải viết trình phân tích cú pháp cho ngôn ngữ này. Và chỉ sau khi bạn hoàn thành giai đoạn này, bạn sẽ tạo một công cụ quy tắc dựa trên trình phân tích cú pháp đó (với các lớp khách truy cập điều hướng qua AST và tạo các vấn đề trong các trường hợp cụ thể).

Bạn có thể có một cái nhìn như thế nào chúng ta thực hiện các plugin Javascript (see the code of version 1.3):

  • module "javascript-mực" là nơi phân tích cú pháp được viết
  • các "javascript kiểm tra" mô-đun là nơi công cụ quy tắc (dựa trên trình phân tích cú pháp) được viết
  • mô-đun "sonar-javascript-plugin" là plugin thực sự, nhúng trình phân tích cú pháp và công cụ quy tắc và cung cấp tất cả các loại keo bắt buộc xung quanh chúng.
+0

Cảm ơn bạn rất nhiều, tôi sẽ xem xét điều đó hôm nay. Người quản lý của tôi cũng đã hỏi tôi liệu có thể có một plugin chạy nhiều regex, tất cả đều được lưu trữ trên một tệp hay không. Điều này có thể có một cửa hàng nhanh chóng và bẩn quanh nó. Để bắt đầu, tôi chỉ cần kiểm tra các câu lệnh ESQL để đảm bảo nó phù hợp với các tiêu chuẩn mã hóa máy khách –

Các vấn đề liên quan