2010-10-26 21 views
13

Ich habe zwei Pakete nämlichDeaktivieren Sie alle Check Kontrollen für ein bestimmtes Java-Paket

com/mydomain/abc/Delegierten/xyz/jaxws/managed

und com/mydomain/abc/xyz/jaxws/managed

Ich benötige checkstyle wird nur für das zweite Paket deaktiviert, da diese Proxy-Klassen enthält, die automatisch generiert werden.

verwende ich eine suppression.xml wie unten

gezeigt
<?xml version="1.0"?> 

<!DOCTYPE suppressions PUBLIC 
    "-//Puppy Crawl//DTD Suppressions 1.1//EN" 
    "suppressions_1_1.dtd"> 

<suppressions> 
     <!-- Suppress JavadocPackage in the test packages --> 
     <suppress checks="JavadocPackage" files="[\\/]test[\\/]"/> 

    <!-- Suppress all checkstyle for autogenerated jaxws.managed package --> 
    <suppress checks="[a-zA-Z0-9]*" files="([^(delegate)])+([a-z]*[\\/]jaxws[\\/]managed[\\/])+"/> 
</suppressions> 

Bitte beachten Sie die erste Unterdrückung zum Deaktivieren JavadocPackage Check funktioniert gut, aber die zweite nicht. Ich habe Angst, dass meine Regex für die Auswahl des Pakets falsch sein könnte. Jede Hilfe wird sehr geschätzt.

Die Kriterien für die Auswahl ist, dass die Paketnamen in jaxws.managed enden sollen, sollen aber nicht delegate in Paketnamen enthalten:

Um meine Anforderungen mit einem Beispiel angeben. Mehr über delegate kommen sollte, bevor jaxws.managed im Paketnamen:

zB: checktyle Kontrollen im Paket com.mycomany.delegate.service.jaxws.managed muss aktiviert werden, während die in com.mycompany.abc.service.jaxws.service muss deaktiviert sein, und es ist anzumerken, dass ich weiß nicht, all pakages Namen im Voraus mit Ausnahme für dieses Muster.

Danke und Grüße Sibi

Antwort

16

einfach die Unterdrückung verwenden:

<suppress checks="." files="com[\\/]mydomain[\\/]abc[\\/]xyz[\\/]jaxws[\\/]managed[\\/]"/> 

Alternativ würde ich empfehlen, nur die Dateien, vorbei Sie Checküberprüft werden sollen. Wenn Sie z. B. ANT verwenden, geben Sie mit a die zu verarbeitenden Dateien an und geben Sie an, welche Dateien ignoriert werden sollen.

Zum Beispiel:

<fileset dir="src"> 
    <include name="**/*.java"/> 
    <exclude name="com/mycompany/abc/service/jaxws/service/*.java"/> 
</fileset> 
+0

Hallo Oliver, Thankyou für die Antwort. Ihre Lösung funktioniert, wenn der gesamte Paketname bekannt ist. In meinem Fall lautet das Auswahlkriterium, dass der Paketname in "jaxws.managed" enden sollte, aber nicht "delegate" im Paketnamen enthalten sollte. Mehr als "delegate" sollte vor "jaxws.managed" im Paketnamen stehen: zB: checkstyle checks im Paket "com.mycomany.delegate.service.jaxws.managed" muss während des in com.mycompany.abc.service aktiviert sein .jaxws.service "muss deaktiviert sein. Danke, Oliver, dass du diese Unklarheit in meiner Frage aufgezeigt hast. –

-3

(?! Delegierten \ b) [\ /] [az] * [\ /] jaxws [\ /] verwaltet [\ /]

Verwandte Themen