2010-10-26 14 views
13

J'ai deux paquets à savoirDésactiver tous les contrôles checkstyle pour un paquet java spécifique

com/mydomain/abc/délégué/xyz/JAXWS/gérés

et com/mydomain/abc/xyz/jaxws/managed

Je requiers checkstyle doit être désactivé uniquement pour le second paquet, car il contient des classes de proxy générées automatiquement.

J'utilise un suppression.xml comme indiqué ci-dessous

<?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> 

S'il vous plaît noter la première suppression pour désactiver l'enregistrement JavadocPackage fonctionne très bien mais la seconde ne fonctionne pas. J'ai peur que mon regex pour sélectionner le paquet puisse être faux. Toute aide est très appréciée.

Affirmer mes exigences avec un exemple:

Les critères de sélection est que le nom du paquet devrait se terminer dans jaxws.managed mais ne doit pas contenir delegate dans le nom du package. Plus sur delegate devraient venir avant jaxws.managed dans le nom du package:

par exemple: contrôles de checktyle dans l'emballage com.mycomany.delegate.service.jaxws.managed doivent être activés alors que com.mycompany.abc.service.jaxws.service doit être désactivé et il est à noter que je ne connais pas tous les noms pakages initiaux, sauf pour ce motif.

Merci et salutations Sibi

Répondre

16

Il suffit d'utiliser la suppression:

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

Sinon, je recommande que passer les fichiers que vous souhaitez cochés à Checkstyle. Par exemple, si vous utilisez ANT, utilisez a pour spécifier les fichiers à traiter et utiliser pour spécifier les fichiers à ignorer.

Par exemple:

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

Salut Oliver, Thankyou pour la réponse. Votre solution fonctionne où le nom de paquet entier est connu. Dans mon cas, le critère de sélection est que le nom du paquet se termine par "jaxws.managed" mais ne doit pas contenir "delegate" dans le nom du paquet. Plus de "délégué" devrait venir avant "jaxws.managed" dans le nom du paquet: par exemple: checktyle contrôles dans le paquet "com.mycomany.delegate.service.jaxws.managed" doit être activé alors que dans com.mycompany.abc.service .jaxws.service "doit être désactivé Merci Oliver pour avoir souligné cette ambigüité dans ma question. –

-3

(?! Délégué \ b) [\ /] [az] * [\ /] JAXWS [\ /] géré [\ /]