SORU
26 EKİM 2010, Salı


Nasıl belirli bir kod satırı için belirli checkstyle bir kuralı devre dışı bırakmak için?

checkstyle geçerlilik kuralı en fazla 3 giriş parametreleri ile sınıf yöntemleri tanımlamak için yasaklayan benim proje, yapılandırılmış var. Kural gayet iyi çalışıyorbenimsınıflar, ama bazen değil itaat eden Taraf üçüncü sınıflar, bu özel kural genişletmek için var.

Talimat bir ihtimal" belli bir yöntem sessizce göz ardı edilmelidir. "checkstyle var

BTW, checkstyle benim kendi sarıcı ile sona erdi: qulice.com

CEVAP
26 EKİM 2010, Salı


http://checkstyle.sourceforge.net/config.html de supressionCommentFilter kullanımını kontrol edin. Senin checkstyle.xml modül eklemek gerekir

<module name="SuppressionCommentFilter"/>

ve yapılandırılabilir. Böylece kodunuzu yorum checkstyle (çeşitli seviyelerde) kapatın ve tekrar kodunuzu yorumlar aracılığıyla yeniden açın ekleyebilirsiniz. E. g.

//CHECKSTYLE:OFF
public void someMethod(String arg1, String arg2, String arg3, String arg4) {
//CHECKSTYLE:ON

Hatta daha iyi, daha burktum bu sürümü kullanın:

<module name="SuppressionCommentFilter">
    <property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|] )"/>
    <property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|] )"/>
    <property name="checkFormat" value="$1"/>
</module>

size belirli kod satırlarını: Özel kontroller kapatmak için izin verir

//CHECKSTYLE.OFF: IllegalCatch - Much more readable than catching 7 exceptions
catch (Exception e)
//CHECKSTYLE.ON: IllegalCatch

Ayrıca Bkz

<module name="SuppressionFilter">
    <property name="file" value="docs/suppressions.xml"/>
</module>

sen desen eşleşen kaynakları için bireysel kontrolleri kapatmak için izin veren aynı sayfada SuppressionFilter bölümü altında.

Eğer checkstyle.xml içinde varsa:

<module name="ParameterNumber">
   <property name="id" value="maxParameterNumber"/>
   <property name="max" value="3"/>
   <property name="tokens" value="METHOD_DEF"/>
</module>

Bu engelleme ile dosya xml kapatabilirsiniz:

<suppress id="maxParameterNumber" files="YourCode.java"/>

Başka bir yöntem, şimdi Checkstyle 5.7 mevcut @SuppressWarnigns java annotation üzerinden ihlallerini bastırmak için. Bunu yapmak için, yapılandırma dosyanızı yeni modülleri () SuppressWarningsFilter ve SuppressWarningsHolder gerekir:

<module name="Checker">
   ...
   <module name="SuppressWarningsFilter" />
   <module name="TreeWalker">
       ...
       <module name="SuppressWarningsHolder" />
   </module>
</module> 

Daha sonra kod içinde aşağıdakileri yapabilirsiniz:

  @SuppressWarnings("checkstyle:methodlength")
  public void someLongMethod() throws Exception {

ya da, birden fazla baskılar için:

  @SuppressWarnings({"checkstyle:executablestatementcount", "checkstyle:methodlength"})
  public void someLongMethod() throws Exception {

": "Öneki isteğe bağlıdır (önerilen) ve parametre adı tüm küçük olmalıdır. checkstyle

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • movies95

    movies95

    27 Kasım 2006
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008