Apakah mungkin untuk mematikan pengukuran sonar ( www.sonarsource.org ) untuk blok kode tertentu, yang mana yang tidak ingin diukur?
Contohnya adalah peringatan "Preserve Stack Trace" yang dihasilkan Findbugs. Ketika meninggalkan server, saya mungkin hanya ingin meneruskan pesan kembali ke klien, tidak termasuk pengecualian aktual yang baru saja saya tangkap, jika pengecualian itu tidak diketahui klien (karena klien tidak memiliki JAR di mana itu pengecualian terkandung misalnya).
@SuppressFBWarnings
(ditambahkan untuk menghindari bentrokan denganjava.lang.SuppressWarnings
) dan juga mengabaikannya.Anda bisa membuat anotasi kelas atau metode dengan SuppressWarnings
squid: S00112 dalam hal ini adalah ID masalah Sonar. Anda dapat menemukan ID ini di Sonar UI. Pergi ke Penelusuran Masalah. Temukan masalah yang ingin Anda tekan peringatannya. Di kotak masalah merah dalam kode Anda, ada tautan Aturan dengan definisi masalah yang diberikan. Setelah Anda mengklik itu Anda akan melihat ID di bagian atas halaman.
sumber
@SuppressWarnings("findbugs:UI_INHERITANCE_UNSAFE_GETRESOURCE")
.Unsupported @SuppressWarnings("squid:S00112")
. Anda dapat mengonfigurasi Eclipse untuk mengabaikan hal ini tetapi kesalahan ketik seperti dalam@SuppressWarnings("uncheckedd")
tidak akan terdeteksi.Saya sarankan Anda mencoba untuk menekan peringatan tertentu dengan menggunakan
@SuppressWarnings("squid:S2078")
.Untuk menekan beberapa peringatan, Anda dapat melakukannya seperti ini
@SuppressWarnings({"squid:S2078", "squid:S2076"})
Ada juga
//NOSONAR
komentar yang memberitahu SonarQube untuk mengabaikan semua kesalahan untuk baris tertentu.Terakhir, jika Anda memiliki hak yang tepat untuk antarmuka pengguna, Anda dapat mengeluarkan bendera sebagai positif palsu langsung dari antarmuka.
Alasan mengapa saya merekomendasikan penindasan terhadap peringatan tertentu adalah bahwa itu adalah praktik yang lebih baik untuk memblokir masalah tertentu daripada menggunakan
//NOSONAR
dan berisiko masalah Sonar merayap dalam kode Anda secara tidak sengaja.Anda dapat membaca lebih lanjut tentang ini di FAQ
Catatan: Gábor Bakos menunjuk ke FAQ yang lebih lama yang sekarang berusia 404-an. Ini adalah hasil google pertama bagi saya jadi saya ingin membantu orang lain yang mungkin memiliki pertanyaan yang sama
Sunting: 6/30/16 SonarQube sekarang disebut SonarLint
Jika Anda bertanya-tanya bagaimana menemukan nomor squid. Cukup klik pada pesan Sonar (mis.
Remove this method to simply inherit it.
) Dan masalah Sonar akan berkembang.Di kiri bawah itu akan memiliki nomor squid (mis.
squid:S1185
Maintainability> Understandability)Jadi Anda bisa menekannya dengan
@SuppressWarnings("squid:S1185")
sumber
Gunakan // NOSONAR pada baris yang Anda dapatkan peringatan jika itu adalah sesuatu yang Anda tidak dapat membantu kode Anda. Berhasil!
sumber
Saya tidak dapat menemukan nomor squid di sonar 5.6, dengan penjelasan ini juga berfungsi:
sumber
squid
adalah untuk database Java yang bersumber dari Sonar (SonarAnalyzer Java).pmd
dancheckstyle
berada di repositori aturan lain.