2015-07-16 17 views
7

Tutulma sırasında Findbugs eklentisini kullanıyorum ve şimdi işlevi Gradle derleme komut dosyasına taşımak istiyorum, böylece herhangi bir ciddi hata algılandığında yapı başarısız olur. Ben devre aşağıdaki hata kategorileri var istiyorum:Bulbugs kontrol edilen hata kategorilerini devre dışı bırak Gradle oluşturma

  1. Deneysel
  2. Güvenlik
  3. Uluslararasılaşma

yukarıda Eclipse eklentisi varsayılan olan

  • zararlı kodlar. Ancak Gradle'da, documentation'a bakarak, tek tek hata kontrollerini devre dışı bırakmanın bir yolunu bulabilirim. Ancak bu mümkün değildir, source code'a bakınca, bunlardan 100'üne kadar yaklaşmak ve ayrı ayrı etkinleştirmek/devre dışı bırakmak için yakındır.

    Yukarıda sözü edilen kategorileri devre dışı bırakmanın daha kolay bir yolu var mı, böylece Gradle tarafından çağrılan Findbugs Eclipse eklenti varsayılan yapılandırmasıyla aynı davranır mı?

    Düzenleme: Şimdiye kadar "excludeFilter" seçeneğinin dışarıda tutulması gereken hata denetleyicileri içeren bir XML dosyası belirtmek için kullanılabileceğini anladık.

    • Uluslararasılaşma: I18N
    • <FindBugsFilter> 
           <Match> 
             <Bug category="EXPERIMENTAL"/> 
           </Match> 
      </FindBugsFilter> 
      

      böcek kategoriler dışlama dosyasında kategori özelliğini belirterek devre dışı bırakılabilir: aşağıdaki gibi bir kategori daha sonra, bu dosyada belirtilen edilebilir dışlanacak Kötü niyetli kod: MALICIOUS_CODE

    • Deneysel: DENEYSEL
    • doğruluğu: DOĞRULUK
    • Performansı: PERFORMANS
    • Kod stili: STİL
    • Kötü örnek: BAD_PRACTICE

    Ancak bu kategori nitelikleri yüzden ben hepsini buldum emin değilim belgelendirilmesi görünmüyor. Daha fazla buldukça bu listeyi düzenler.

  • cevap

    4

    Haklısınız, FindBug kategori listesi tamamen belgelenmiş olmamak seemes. Kaynak paketinde https://sourceforge.net/projects/findbugs/files/findbugs/3.0.1/'dan arama yaparak, BugCategory tanımlarını varsayılan messages.xml dosyasında bulabilirsiniz.

    Ben infomation çıkarılan ve FindBugs-3.0.1 \ vb \ messages.xml bulunan tüm kategorileri uyan bir filtre oluşturuldu:

    <FindBugsFilter> 
        <!-- Probable bug - an apparent coding mistake resulting in code that was 
         probably not what the developer intended. We strive for a low false positive 
         rate. --> 
        <Match> 
         <Bug category="CORRECTNESS" /> 
        </Match> 
    
        <!-- Bogus random noise: intended to be useful as a control in data mining 
         experiments, not in finding actual bugs in software. --> 
        <Match> 
         <Bug category="NOISE" /> 
        </Match> 
    
        <!-- A use of untrusted input in a way that could create a remotely exploitable 
         security vulnerability. --> 
        <Match> 
         <Bug category="SECURITY" /> 
        </Match> 
    
        <!-- Violations of recommended and essential coding practice. Examples include 
         hash code and equals problems, cloneable idiom, dropped exceptions, Serializable 
         problems, and misuse of finalize. We strive to make this analysis accurate, 
         although some groups may not care about some of the bad practices. --> 
        <Match> 
         <Bug category="BAD_PRACTICE" /> 
        </Match> 
    
        <!-- code that is confusing, anomalous, or written in a way that leads itself 
         to errors. Examples include dead local stores, switch fall through, unconfirmed 
         casts, and redundant null check of value known to be null. More false positives 
         accepted. In previous versions of FindBugs, this category was known as Style. --> 
        <Match> 
         <Bug category="STYLE" /> 
        </Match> 
    
        <!-- code that is not necessarily incorrect but may be inefficient --> 
        <Match> 
         <Bug category="PERFORMANCE" /> 
        </Match> 
    
        <!-- code that is vulnerable to attacks from untrusted code --> 
        <Match> 
         <Bug category="MALICIOUS_CODE" /> 
        </Match> 
    
        <!-- code flaws having to do with threads, locks, and volatiles --> 
        <Match> 
         <Bug category="MT_CORRECTNESS" /> 
        </Match> 
    
        <!-- code flaws having to do with internationalization and locale --> 
        <Match> 
         <Bug category="I18N" /> 
        </Match> 
    
        <!-- Experimental and not fully vetted bug patterns --> 
        <Match> 
         <Bug category="EXPERIMENTAL" /> 
        </Match> 
    
    </FindBugsFilter> 
    
    3

    Daha önce grab ile FindBugs kullanmamıştım ancak excludeFilter seçeneği tüm kategorileri filtrelemek için kullanabileceğiniz FindBugs XML dosyasını alıyor gibi görünüyor.

    The FindBugs Filter manual daha iri taneli eşleştirme, kullanımı kod özelliği için. Virgülle ayrılmış bir böcek kısaltmaları listesi alır. Çoğu kaba taneli eşleştirme kullanımı kategorisi yönergesi için, bu, hata kategorisi adlarının virgülle ayrılmış bir listesini alır: CORRECTNESS, MT_CORRECTNESS, BAD_PRACTICICE, PERFORMANS, STİL.

    Yukarıda belirtilen özniteliklerden birden fazlası aynı öğe üzerinde belirtilmişse, belirtilen desen adlarından biriyle eşleşen tüm hata kalıpları veya kısaltmalar veya kategoriler eşleştirilir.

    yüzden böyle bir XML dosyası oluşturmaktır mümkün olmalıdır düşünüyorum:

    <FindBugsFilter> 
    
        <Match> 
    
        <Bug pattern="EXPERIMENTAL"/> 
        </Match> 
    
        <Match> 
        <Bug pattern="MALICIOUS_CODE" /> 
        </Match> 
        ...etc 
    </FindBugsFilter> 
    
    +0

    sayesinde bu çalışmıyor% 100 ama sağda beni sokuyor Izlemek. Kod özniteliği, kategori açıklamaları için çalışıyor gibi görünmüyor. Elde edebileceğim en yakın "kategori" özelliğini kullanmaktır. Daha sonra kategori * kısaltmaları * belirtebilirim. Ancak bu, maalesef metin kategorilerinden de farklıdır. Örneğin, "Uluslararasılaştırma" hataları gerçek kategori "I18N" dir. kullandığımda, uluslararasılaştırma kategorisi hataları dışlanacak. Bu kısaltmaları belgelerde bulamıyorum, bu yüzden onlar için kaynağı aramak zorunda kalacağım, eğlenceli zamanlar ... – mdewit

    +0

    Üzgünüm, tarih belgelerini bulmuş olmalıyım. Çalışma kodlarının ne olduğunu bize bildirin, böylece cevabı güncelleyebilirim, böylece bir dahaki sefere birini bulmak kolay olur – dkatzel

    İlgili konular