كيفية منع جميع عمليات التحقق من ملف في Checkstyle؟

StackOverflow https://stackoverflow.com/questions/1012407

  •  06-07-2019
  •  | 
  •  

سؤال

أقوم بتجاوز فئة طرف ثالث وأريد منع جميع عمليات التحقق الخاصة بها (بما أنني أحتفظ بها فقط حتى يتم قبول التصحيح).

هل هناك طريقة لقمع جميع عمليات التحقق من الملف؟

لقد حاولت استخدام "*" لكن ذلك فشل.

هل كانت مفيدة؟

المحلول

لا أعرف ما إذا كنت تستخدم سطر الأوامر أو في IDE، ولكن عليك ان تحصل على ملف suppresions أساسا. إذا كنت تقوم بتحرير ملف التكوين Checkstyle يدويا، إضافة وحدة نمطية جديدة إليه:

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

وmysuppression.xml الخاص بك يمكن أن يكون شيئا مثل:

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">

<suppressions>
    <suppress files="TheClassToIgnore\.java" checks="[a-zA-Z0-9]*"/>
</suppressions>

وقيمة للسمة "files" هي في الأساس التعابير المنطقية لملفات المصدر، وقيمة لل"checks" السمة هي التعابير المنطقية لما يتحقق لتخطي ( "[a-zA-Z0-9]*" تعني أساسا تخطي كل شيء). هذا هو نمط كنت تبحث عن واعتقد؟

نصائح أخرى

وكنت قادرا على قمع الشيكات في الملف عن طريق إضافة علامة SuppressionCommentFilter في بلدي checks.xml:

أولا، وأضفت علامة FileContentHolder كطفل العلامة TreeWalker (هذه الخطوة <م> لا اللازمة منذ الإصدار 8.1 من com.puppycrawl.tools:checkstyle):

<module name="TreeWalker">
    ...
    <module name="FileContentsHolder"/>
    ...
</module>

وثم أضفت SuppressionCommentFilter في checks.xml (منذ الإصدار 8.1 من com.puppycrawl.tools:checkstyle - تحت عنوان "TreeWalker" عقدة):

<module name="SuppressionCommentFilter"/>

في كل الملفات التي كنت أرغب في قمع الشيكات تم إدراج التعليق التالي في السطر الأول من الملف:

// CHECKSTYLE:OFF

والجواب aberrant80 وساعدت كثيرا. مع مساعدة من تلميح له - باستخدام رجإكس مطابقة النقش، وكنت أيضا قادرا على قمع checkstyle لحزمة كاملة من خلال إضافة هذا الملف checkstyle-suppressions.xml. على سبيل المثال ل. لتخطي الشيكات checkstyle على كافة الملفات جافا السيارات ولدت تحت حزمة JAXB،

    <suppressions>
        <suppress checks="[a-zA-Z0-9]*" files="[\\/]jaxb[\\/]" />
    </suppressions>

إذا كنت تستخدم المكون الإضافي Checkclipse Eclipse لـ Checkstyle، فيمكنك تضمين أو استبعاد أنماط الملفات (بما في ذلك الدلائل) بالانتقال إلى علامة التبويب Checkclipse > File Filter ضمن خصائص المشروع.على سبيل المثال، يحتوي مشروعي src و امتحان الدلائل في المستوى الأعلى.أريد تطبيق Checkstyle على الملفات الموجودة في ملف src الدليل (حذف امتحان)، لذلك قمت بإضافة نمط التضمين الذي يبدو كما يلي:

src/.+java$

كما ترون، فإنه يستخدم بناء جملة نمط regex لمواصفات النمط.

و @aberrant80 والجواب هو الملهم للغاية على الرغم من أنه لم ينجح في مشروعي. من أجل قمع أي تحذيرات من أن checkstyle يبحث عنه في Foo.java، وفقا ل<لأ href = "http://maven.apache.org/plugins/maven-checkstyle-plugin/examples/suppressions-filter.html" يختلط = "noreferrer نوفولو"> رابط ، إذا تم استخدام مخضرم:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    ...
        <configuration>
            ...
            <configLocation>checkstyle.xml</configLocation>
            <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
            ...
        </configuration>                
    ...
</plugin>

وفي checkstyle-suppressions.xml

<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
    <suppress files="Foo.java" checks="[a-zA-Z0-9]*" />
</suppressions>

وحتى الآن أعلى الإصدار 1.1 (1.2 غير موجود).

وهناك خيار لتجاهل إرسال الملفات المحمية. أو الملفات في الحزمة.

إذا كنت ترغب في عدم فحص مجموعة من الملفات ضمن مشروع ما، فيمكنك تصفية هذه الملفات حتى لا يتم فحصها عن طريق إنشاء ملف مرشح الملف

يستخدم عامل تصفية الملفات regex لتحديد الملفات التي سيتم استبعادها.يعمل التعبير العادي على اسم الملف الكامل - ولهذا السبب، يمكنك أيضًا استبعاد المجلدات بأكملها.في هذه الحالة، يمكنك استبعاد الحزمة بأكملها إذا كنت ترغب في ذلك.

إذا بحثت في Google قليلاً - فمن المحتمل أن تجد بعض ملفات Checkstyle Configuration Property التي تحتوي على أمثلة لما تبحث عنه.أود أن أقترح عليك بعد القيام بذلك - حفظه كنموذج صغير حتى تتمكن من الرجوع إليه في المواقف المستقبلية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top