IDEA插件-CheckStyle的安装与使用

2023-11-19

目录

一、安装CheckStyle

二、配置CheckStyle

三、使用CheckStyle


一、安装CheckStyle

1、依次访问IDEA  >>  File  >>  Settings  >>  Plugins  >>  Marketplace,点击CheckStyle-IDEA的Install按钮进行安装。

 

 2、安装完成需重启IDEA。

二、配置CheckStyle

1、本地生成E:\rules\CheckStyle\checkstyle.xml文件

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">

<module name="Checker">
  <!--
      If you set the basedir property below, then all reported file
      names will be relative to the specified directory. See
      http://checkstyle.sourceforge.net/config.html#Checker

      <property name="basedir" value="${basedir}"/>
  -->

  <metadata name="com.atlas-sw.eclipse" value="I like Sydney"/>

  <!--property name="cacheFile" value="${checkstyle.cache.file}" -->

  <property name="severity" value="error"/>

  <property name="fileExtensions" value="java, properties, xml, vm, g, g4, dtd"/>

  <!-- BeforeExecutionFileFilters is required for sources that are based on java9 -->
  <module name="BeforeExecutionExclusionFileFilter">
    <property name="fileNamePattern" value="module\-info\.java$" />
  </module>

  <!-- Filters -->
  <module name="SeverityMatchFilter">
    <!-- report all violations except ignore -->
    <property name="severity" value="ignore"/>
    <property name="acceptOnMatch" value="false"/>
  </module>
  <module name="SuppressionFilter">
    <property name="file" value="${checkstyle.suppressions.file}"/>
  </module>

  <!-- Headers -->
  <module name="Header">
    <!--property name="headerFile" value="${checkstyle.header.file}" -->
    <property name="fileExtensions" value="java"/>
    <property name="id" value="header"/>
  </module>
  <module name="RegexpHeader">
    <!--property name="headerFile" value="${checkstyle.regexp.header.file}" -->
    <property name="fileExtensions" value="java"/>
  </module>

  <!-- Javadoc Comments -->
  <!--
  <module name="JavadocPackage">
    <property name="allowLegacy" value="false"/>
  </module>
  -->
  <!-- Miscellaneous -->

  <!-- Regexp -->
 
  <module name="RegexpSingleline">
    <property name="format" value="^(?!(.*http|import)).{120,}$"/>
    <property name="fileExtensions" value="g, g4"/>
    <property name="message" value="Line should not be longer then 100 symbols"/>
  </module>

  <module name="RegexpOnFilename">
      <property name="folderPattern" value="[\\/]src[\\/]xdocs[\\/]"/>
      <property name="fileNamePattern" value="\.(xml)|(vm)$"/>
      <property name="match" value="false"/>
      <message key="regexp.filepath.mismatch" value="All files in the ''src/xdocs'' folder should have the ''xml'' or ''vm'' extension."/>
  </module>
  <module name="RegexpOnFilename">
      <property name="folderPattern" value="[\\/]src[\\/]it[\\/]java[\\/]"/>
      <property name="fileNamePattern" value="^((\w+Test)|(Abstract\w+))\.java$"/>
      <property name="match" value="false"/>
      <message key="regexp.filepath.mismatch" value="All files in the ''src/it/java'' folder should be named ''*Test.java'' or ''Abstract*.java''."/>
  </module>
  
    <!-- Size Violations -->
  <module name="FileLength">
   <!-- <property name="fileExtensions" value="java"/>-->
    <property name="max" value="1500"/>  

  </module>


  <!-- Whitespace -->
  <module name="FileTabCharacter">
    <property name="eachLine" value="false"/>
  </module>

  <module name="TreeWalker">
    <property name="tabWidth" value="4"/>

    <!-- Annotations -->
    <module name="AnnotationLocation">
      <property name="tokens" value="ANNOTATION_DEF"/>
      <property name="tokens" value="ANNOTATION_FIELD_DEF"/>
      <property name="allowSamelineSingleParameterlessAnnotation" value="false"/>
    </module>
    <module name="AnnotationLocation">
      <property name="tokens" value="PARAMETER_DEF"/>
      <property name="allowSamelineMultipleAnnotations" value="true"/>
    </module>
    <module name="AnnotationOnSameLine">
      <!-- we can not use it as it conflicts with AnnotationLocation -->
      <property name="severity" value="ignore"/>
      <property name="tokens" value="METHOD_DEF"/>
      <property name="tokens" value="CTOR_DEF"/>
      <property name="tokens" value="TYPECAST"/>
      <property name="tokens" value="DOT"/>
      <property name="tokens" value="CLASS_DEF"/>
      <property name="tokens" value="ENUM_DEF"/>
      <property name="tokens" value="INTERFACE_DEF"/>
      <property name="tokens" value="TYPE_ARGUMENT"/>
      <property name="tokens" value="ANNOTATION_DEF"/>
      <property name="tokens" value="LITERAL_NEW"/>
      <property name="tokens" value="LITERAL_THROWS"/>
      <property name="tokens" value="VARIABLE_DEF"/>
      <property name="tokens" value="PARAMETER_DEF"/>
      <property name="tokens" value="IMPLEMENTS_CLAUSE"/>
      <property name="tokens" value="ANNOTATION_FIELD_DEF"/>
    </module>
    <module name="AnnotationUseStyle"/>
    <module name="MissingDeprecated"/>
    <module name="MissingOverride">
      <property name="javaFiveCompatibility" value="true"/>
    </module>
    <module name="PackageAnnotation"/>

    <!-- Block Checks -->
    <module name="AvoidNestedBlocks">
      <property name="allowInSwitchCase" value="true"/>
    </module>
    <module name="EmptyBlock">
      <property name="tokens" value="LITERAL_CATCH"/>
      <property name="tokens" value="ARRAY_INIT"/>
      <property name="tokens" value="LITERAL_DEFAULT"/>
      <property name="tokens" value="LITERAL_CASE"/>
      <property name="tokens" value="INSTANCE_INIT"/>
      <property name="tokens" value="LITERAL_DO"/>
      <property name="tokens" value="LITERAL_ELSE"/>
      <property name="tokens" value="LITERAL_FINALLY"/>
      <property name="tokens" value="LITERAL_FOR"/>
      <property name="tokens" value="LITERAL_IF"/>
      <property name="tokens" value="LITERAL_SWITCH"/>
      <property name="tokens" value="LITERAL_SYNCHRONIZED"/>
      <property name="tokens" value="LITERAL_TRY"/>
      <property name="tokens" value="LITERAL_WHILE"/>
      <property name="tokens" value="STATIC_INIT"/>
      <property name="option" value="text"/>
    </module>
    <module name="EmptyCatchBlock"/>
    <module name="NeedBraces"/>
    <module name="NeedBraces">
      <property name="tokens" value="LAMBDA"/>
      <property name="allowSingleLineStatement" value="true"/>
    </module>
    <module name="RightCurly">
        <property name="option" value="alone" />
    </module>

    <!-- Class Design -->
    <module name="FinalClass"/>
    <module name="InnerTypeLast"/>
    <module name="InterfaceIsType"/>
    <module name="OneTopLevelClass"/>

    <!-- Coding -->
    <module name="CovariantEquals"/>
    <module name="DefaultComesLast"/>
    <module name="EmptyStatement"/>
    <module name="EqualsAvoidNull"/>
    <module name="EqualsHashCode"/>
    <module name="IllegalInstantiation">
        <property name="classes" value="org.xml.sax.SAXException, org.xml.sax.SAXParseException, org.apache.commons.beanutils.ConversionException,
            org.antlr.v4.runtime.misc.ParseCancellationException, antlr.RecognitionException, antlr.TokenStreamException, antlr.TokenStreamRecognitionException, antlr.ANTLRException"/>
    </module>
    <module name="IllegalThrows"/>
    <!--
    <module name="IllegalToken">
        <property name="tokens" value="LABELED_STAT"/>
        <property name="tokens" value="LITERAL_NATIVE"/>
        <property name="tokens" value="LITERAL_VOLATILE"/>
        <property name="tokens" value="LITERAL_ASSERT"/>
    </module>
    -->
    <module name="IllegalTokenText"/>
    <module name="IllegalType">
    	<property name="illegalClassNames" value=""/>
    </module>
    <module name="InnerAssignment"/>
    <module name="MissingCtor">
      <!--
        we will not use that fanatic validation, extra code is not good
        But this Check will exists as it was created by community demand.
      -->
      <property name="severity" value="ignore"/>
    </module>
    <module name="MissingSwitchDefault"/>
    <module name="ModifiedControlVariable"/>
    <module name="MultipleVariableDeclarations"/>
    <module name="NestedForDepth">
      <property name="max" value="2"/>
    </module>
    <module name="NestedIfDepth">
        <property name="max" value="5" />
    </module>

    <module name="NestedTryDepth">
        <property name="max" value="2" />
    </module>
    <module name="NoFinalizer"/>
    <module name="OneStatementPerLine"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>
    <module name="StringLiteralEquality"/>
    <module name="SuperClone"/>
    <module name="SuperFinalize"/>

    <!-- Filters-->
    <module name="SuppressionCommentFilter">
      <!--
        Use suppressions.xml for suppressions, this is only example.
        checkFormat will prevent suppression comments from being valid.
      -->
      <property name="checkFormat" value="IGNORETHIS"/>
      <property name="offCommentFormat" value="CSOFF\: .*"/>
      <property name="onCommentFormat" value="CSON\: .*"/>
    </module>
    <module name="SuppressWithNearbyCommentFilter">
      <property name="commentFormat" value="-@cs\[(\w{8,}(\|\w{8,})*)\] \w[\(\)\-\.\'\`\,\:\;\w ]{10,}"/>
      <property name="checkFormat" value="$1"/>
      <property name="influenceFormat" value="3"/>
    </module>

    <!-- Imports -->
    <module name="AvoidStarImport"/>
    <module name="IllegalImport"/>

		<!-- 
    <module name="ImportOrder">
        <property name="groups" value="/^javax?\./,org,/./,/^com\.(ztesoft|publicmobile)\./" />
        <property name="ordered" value="true" />
        <property name="separated" value="true" />
        <property name="option" value="above" />
    </module>
    -->
    <module name="RedundantImport"/>
    <module name="UnusedImports"/>

    <!-- Javadoc Comments -->
    <!--
    <module name="AtclauseOrder"/>
    <module name="JavadocMethod">
      <property name="allowUndeclaredRTE" value="true"/>
      <property name="allowThrowsTagsForSubclasses" value="true"/>
      <property name="allowMissingPropertyJavadoc" value="true"/>
    </module>
    <module name="JavadocParagraph"/>
    <module name="JavadocStyle">
      <property name="scope" value="public"/>
    </module>
    <module name="JavadocTagContinuationIndentation"/>
    <module name="JavadocType">
      <property name="authorFormat" value="\S"/>
      <property name="allowUnknownTags" value="true"/>
    </module>
    <module name="JavadocVariable"/>
    <module name="NonEmptyAtclauseDescription"/>
    <module name="SingleLineJavadoc"/>
    <module name="WriteTag"/>
    <module name="SummaryJavadoc"/>
    -->
    <!-- Metrics -->
    <module name="BooleanExpressionComplexity">
      <property name="max" value="7"/>
    </module>

    <!-- Misc -->
    <module name="ArrayTypeStyle"/>
    <module name="AvoidEscapedUnicodeCharacters">
      <property name="allowIfAllCharactersEscaped" value="true"/>
    </module>
    <module name="DescendantToken"/>
    <module name="FinalParameters">
      <!--
        we will not use that fanatic validation, extra modifiers pollute a code
        it is better to use extra validation(Check) that argument is reassigned
        But this Check will exists as it was created by community demand.
      -->
      <property name="severity" value="ignore"/>
    </module>
    <module name="OuterTypeFilename"/>

    <!-- Modifiers -->
    <module name="ModifierOrder"/>
    <module name="ClassTypeParameterName"/>
    <module name="InterfaceTypeParameterName"/>
    <module name="LocalFinalVariableName"/>
    <module name="MethodName"/>
    <module name="MethodTypeParameterName"/>
    <module name="PackageName"/>
    <module name="StaticVariableName">
      <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
    </module>
    <module name="TypeName"/>

    <module name="RegexpSinglelineJava">
        <property name="format" value="(System\.(((out|err)\.print(ln)?)|exit)\()|(\.printStackTrace\(\))" />
        <property name="ignoreComments" value="true" />
        <property name="message" value="avoid use system.out(err,exit) or printStackTrace()" />
    </module>

    <module name="OuterTypeNumber"/>
    <module name="ParameterNumber">
        <property name="severity" value="warning" />
        <property name="max" value="10" />
    </module>

    <!-- Whitespace -->
    <module name="EmptyForInitializerPad"/>
    <module name="EmptyForIteratorPad"/>
    <module name="GenericWhitespace"/>
    <module name="MethodParamPad"/>
    <module name="NoLineWrap"/>
    <module name="NoWhitespaceBefore"/>
    <module name="NoWhitespaceAfter" />
    <module name="ParenPad"/>
    <module name="SeparatorWrap">
      <property name="tokens" value="DOT"/>
      <property name="tokens" value="AT"/>
      <property name="tokens" value="METHOD_REF"/>
      <property name="option" value="nl"/>
    </module>
    <module name="SeparatorWrap">
      <property name="tokens" value="COMMA"/>
      <property name="tokens" value="RBRACK"/>
      <property name="tokens" value="ARRAY_DECLARATOR"/>
      <property name="tokens" value="ELLIPSIS"/>
      <property name="tokens" value="SEMI"/>
      <property name="option" value="EOL"/>
    </module>
    <module name="TypecastParenPad"/>
    <module name="WhitespaceAfter"/>
    <module name="WhitespaceAround"/>

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

2、本地生成E:\rules\CheckStyle\suppressions.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
<suppressions>
<!-- BSS -->
  <!-- DEV1 -->
	<!-- BC一次性算费中使用到的python相关 -->
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\bizcommon\\fc\\rating\\ratingcall\\ratingengine\\common\\python"/>
  <!-- BC历史遗留代码,之前放在流程中屏蔽,现在放到例外文件中 -->
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\product\\price\\bll\\PricePlanManager.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\product\\price\\servlet\\PricePlanExportServlet.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\profile\\cdr\\bll\\Eval.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\profile\\cust\\bs\\FileOperationManager.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\res\\dao\\abstractimpl\\AccNbrExDAO.java"/>

  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\bizcommon\\rating\\common\\python\\PythonEvent.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\bizcommon\\rating\\common\\python\\PythonCall.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\bizcommon\\rating\\common\\python\\IPythonEvent.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\bizcommon\\rating\\common\\python\\EventAttr.java"/>
  <!-- VIETICS使用到的python相关 -->
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\vietics\\common\\rating\\PythonEventVietics.java"/>
  <!-- PRM使用到的python相关 -->
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\prm\\rating\\domain\\event\\JythonEvent.java"/>
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\prm\\rating\\domain\\event\\EventAttr.java"/>
	<!-- BL欠费规则,话单查询,文件托收相关,类或者方法超长,有项目使用不易修改 -->
  <suppress checks="FileLength|MethodLength" files="\\com\\ztesoft\\zsmart\\bss\\billing\\common\\dao\\abstractimpl\\AccountQueryDAO.java"/>
  <suppress checks="FileLength|NestedIfDepth" files="\\com\\ztesoft\\zsmart\\bss\\billing\\common\\bll\\AccountQuery.java"/>
  <suppress checks="FileLength|MethodLength" files="\\com\\ztesoft\\zsmart\\bss\\billing\\common\\bll\\ARFileDealMgr.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\billing\\setup\\bll\\DebitManagerRule.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\billing\\collection\\bll\\DebitManagerEngine.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\billing\\chrg\\bll\\BillingFlowMonitor.java"/>
  <!-- FBF 类或者方法超长,不易修改 -->
  <suppress checks="FileLength|MethodLength" files="\\com\\ztesoft\\zsmart\\bfm\\dao\\impl\\EntityMetadataFactory.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bfm\dao\\impl\\ProductDaoTemplate.java"/>
  <suppress checks="FileLength|MethodLength" files="\\com\\ztesoft\\zsmart\\bfm\\dao\\impl\\SimpleDaoTemplate.java"/>
  <suppress checks="MethodName" files="\\com\\ztesoft\\zsmart\\bfm\\el\\ELInput.java"/>
  <suppress checks="MethodName" files="\\com\\ztesoft\\zsmart\\bfm\\el\\ElFunctions.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bfm\\rule\\dao\\oracleimpl\\RuleDataDAOOracle.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bfm\\rule\\services\\RuleDataService.java"/>
  <suppress checks="PackageName" files="\\com\\ztesoft\\zsmart\\bfm\\sessionMonitor\\SessionMonitorService.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\busiorder\\dao\\abstractimpl\\WfWorkOrderDAO.java"/>
  <suppress checks="FileLength|NestedIfDepth|NestedForDept" files="\\com\\ztesoft\\zsmart\\bss\\common\\config\\bll\\BusiConfigurationFactory.java"/>
  <suppress checks="StaticVariableName" files="\\com\\ztesoft\\zsmart\\bss\\common\\export\\util\\DataFormatUtil.java"/>
  <suppress checks="FileLength|MethodLength|NestedIfDepth" files="\\com\\ztesoft\\zsmart\\bss\\common\\utils\\BoUtil.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\common\\utils\\BusiBaseDAO.java"/>
  <suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bfm\\dao\\impl\\ProductDaoTemplate.java"/>
  <suppress checks="RegexpSinglelineJava" files="\\org\\aopalliance\\aop\\AspectException.java"/>
  <suppress checks="MethodName" files="\\com\\ztesoft\\zsmart\\bfm\\pojorule\\util\\PojoELInput.java" />

	<!-- DEV2 DEV5,在用的项目存在较多的形如“基类_事件”的类名,不易修改 -->  
  <suppress checks="TypeName" files="\\profile\\lifecycle.*\\bll\\scanner\\.*_.*java" />

  <!-- DEV2 -->
  <!-- 已经在用的项目,命名空间被定义为大写了,无法再修改 -->
  <suppress checks="PackageName" files="\\(irantamin|mneTelenor|portuZAPP|canadaPMI|mauriMTML|kenyaYu|vanuatuFT|haitiViettel)" />
  <!-- report包属框架代码,很多商用版本调用,无法修改函数,变量,包等命名规范问题-->
	<suppress checks="PackageName|TypeName|MethodName|MemberName|StaticVariableName" files="com\\ztesoft\\zsmart\\report\\.*\.java" />
	<suppress checks="TypeName" files="\\com\\ztesoft\\zsmart\\bss\\contact\\dispatch\\mml\\services\\BuildMMLRetCode_Desc.java" />
  <!-- 自服务项目的代码不需要检查 -->
  <suppress checks="" files="\\customer_selfservice\\(Fiji|irantamin|Mongolia|myanmar)" />
  <suppress checks="" files="\\(custselfservice_mauriMTML|mobileselfservice)" />

  <!-- DEV4 -->
  <!-- 定义静态变量与配置文件保持一致,不适用驼峰命名法 -->
  <suppress checks="StaticVariableName" files="BillGenerateCfg\.java" />
  <suppress checks="StaticVariableName" files="ReportJobConfig\.java" />
  <!-- MainServlet.java customreport项目启动时调用,需要在控制台打印启动成功信息 -->
  <suppress checks="RegexpSinglelineJava" files="\\customreport\\servlet\\MainServlet\.java" />
  <!-- BaseBillCtrl.java report启动批量打印账单进程需要提示信息,需要在控制台打信息 -->
  <suppress checks="RegexpSinglelineJava" files="BaseBillCtrl\.java" />
  <suppress checks="RegexpSinglelineJava" files="\\report\\printqry\\bll\\BatchBillPrint\.java" />
  <!-- 从三方jar包拷过来的,用来与ireport整合的,不好修改 -->
  <suppress checks="ParameterNumber" files="\\report\\util" />

  <!-- DEV5 -->
  <!-- 已经在用的项目,命名空间被定义为大写了,无法再修改 -->
  <suppress checks="PackageName" files="\\(Common|angolaMvl|sTel)" />

  <!-- DEV10 -->
  <suppress checks="TypeName" files="\\com\\ztesoft\\provisioning\\.*_Stub\.java" />
  <suppress checks="TypeName" files="\\com\\ztesoft\\zsmart\\smc\\.+\\.*_.*\.java" />

  <suppress checks="" files="\\com\\ztesoft\\provisioning\\protocols\\webservice" />
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\provisioning\\webPublic\\comverseIn" />

  <!-- DEV13 -->
  <!-- 调用flex工具线程不退出,暂时只能用System.exit(-1) -->
  <suppress checks="RegexpSinglelineJava" files="\\DailyCIApp.java" />
<!-- webservice -->
	<!-- WebServices.java中不能识别自定义的异常[bss/ws/common/WebServiceException.java] -->
	<suppress checks="RedundantThrows" files="\\com\\ztesoft\\zsmart\\bss\\ws\\.*\\WebServices.*.java" />
	<suppress checks="RedundantThrows" files="\\com\\ztesoft\\zsmart\\bss\\ws\\.*\\ServiceSoap.*.java" />
  <!-- portal下的ws -->
  <suppress checks="" files="com\\publicmobile\\services" />
  <!-- webservice客户端代码,不检查 -->
  <suppress checks="" files="\\ws[Cc]lient" />
  <suppress checks="" files="\\wsMelletClient" />
  <suppress checks="" files="\\client[Dd]river" />
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\sfa\\common\\wsclient" />
  <!-- 使用wsdl生成的代码-->
  <suppress checks="MethodName" files="\\ocswebservices\\src\\com\\ztesoft\\ocsws\\services\\.*java" />
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\ws\\customization\\" />
  
  <!-- ebs项目 -->
  <suppress checks="" files="(SendSMSSvcServiceStub|CSVAllTests|CsvReader|CsvWriter)\.java" />
  <suppress checks="" files="ws\\oppstage\\sobject\\Opportunity\.java" />
  <!-- v8 开通 -->
  <suppress checks=""  files="com\\ztesoft\\zsmart\\provisioning\\core\\helpers\\CsvReader.java"/>
	<suppress checks=""  files="com\\ztesoft\\zsmart\\provisioning\\core\\ipc\\transport\\rmi\\RmiBusiService_Stub.java"/>
	<suppress checks=""  files="com\\ztesoft\\zsmart\\provisioning\\core\\monitor\\rmi\\RemoteMonitor_Stub.java"/>
	<suppress checks="RegexpSinglelineJava"  files="com\\ztesoft\\zsmart\\provisioning\\core\\starter\\ServiceActiveRun.java"/>
	<suppress checks="RegexpSinglelineJava"  files="com\\ztesoft\\zsmart\\provisioning\\core\\starter\\WorkFLowEngineRun.java"/>
	<suppress checks=""  files="com\\ztesoft\\zsmart\\provisioning\\core\\northadapter\\StandardOrder_3rdParty.xml"/> 
	<suppress checks=""  files="com\\ztesoft\\zsmart\\provisioning\\plugins\\sa\\dataaccesses\\support\\synchronalaccess\\SynchronalRequest_Stub.java"/>
	<suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\cc\\abe\\order\\OrderItem.java"/>
	<suppress checks="FileLength" files="\\com\\ztesoft\\zsmart\\bss\\res\\bll\\FileOperationAccNbrManager.java"/>
	
	<!-- PRM -->
	<suppress checks="MethodName" files="\\com\\ztesoft\\zsmart\\bss\\prm\\rating\\price\\EventAttr.java"/>
	<suppress checks="MethodName" files="\\com\\ztesoft\\zsmart\\bss\\prm\\rating\\price\\JythonEvent.java"/>

	<!-- Base64 code-->
  <suppress checks="" files="\\com\\ztesoft\\zsmart\\bss\\common\\helper\\Base64Kpn.java"/>
  
  <suppress checks="" files="\\spring\\EngineConfig.xml"/>
  <suppress checks="" files="\\.*\\mapper\\.*.xml"/>
  <suppress checks="" files="\\.*\\.*.drl"/>
  <suppress checks="" files="\\log.*.xml"/>
  
  
</suppressions>

3、开始配置:依次访问IDEA  >>  File  >>  Settings  >>  Tools  >>  checkStyle。

(1)选择Checkstyle verison的版本号为8.14;

(2)点击Configuration File下的 "+" 添加第1步生成的checkstyle.xml;

(3)点击Next;

(4)配置属性值为第2步生成的suppressions.xml;

(5)点击Next;

(6) 配置成功;

(7)点击Finish;

三、使用CheckStyle

1、 打开java类

2、点击开始Check按钮

3、生成错误信息

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA插件-CheckStyle的安装与使用 的相关文章

  • (更好的方法)使用 Eclipse 和 XText 获取项目中的文件

    我正在编写一个 XText 编辑器 并进行一些语义突出显示 我正在解析的部分语言引用了文件 这些文件应该存在于项目中 我想根据这些文件是否位于正确的位置来突出显示 目前 我有一个非常丑陋的解决方案 但我确信有更好的方法 public voi
  • Google App Engine 数据存储写入:如何远程启用/禁用只读模式?

    在阅读备份时GAE 的数据存储 https developers google com appengine docs adminconsole datastoreadmin where 我们强烈建议您在备份或恢复期间将应用程序设置为只读模式
  • 将键与多个值对象关联的有效集合[重复]

    这个问题在这里已经有答案了 有任何有效的集合可以将键与多个值关联起来 例如 new HashMap
  • Java中的字节和字符转换

    如果我将一个字符转换为byte然后回到char 那个角色神秘地消失了 变成了别的东西 这怎么可能 这是代码 char a line 1 byte b byte a line 2 char c char b line 3 System out
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • 我从 String placeName = placeText.getText().toString(); 收到空指针异常

    您好 想从编辑文本中获取地名并在地图上标记 这是我的代码 其中出现空指针异常 请帮助我应该做什么以及哪里出错了 因为我从对话框中的编辑文本字段获取地名 View layout View inflate this R layout alert
  • 在 Java 中生成 LaTeX 输出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有用于从 Java 生成 LaTeX 输出的 Java 库 渲染乳胶 JLatex数学 https
  • Java:从 ScriptEngine javascript 返回一个对象

    我正在尝试使用 Java 来评估 javascript脚本引擎 https docs oracle com javase 7 docs api javax script ScriptEngine html班级 这是我正在尝试做的事情的一个简
  • Java 套接字 - 读和写

    问题 客户端没有收到任何消息 这是客户端和服务器的完整代码 CLIENT public class Client extends Socket public Client String hostName int port throws Un
  • 对象映射器 - YAMLFactory - 由于缺少 _createContentReference 方法而出现异常

    我正在使用最新的 2 13 0 版本的 jackson 当我尝试解析 YAML 文件时 出现此异常 java lang NoSuchMethodError com fasterxml jackson core io ContentRefer
  • Java:如果数组大小未知,如何初始化?

    我要求用户输入 1 到 100 之间的一些数字并将它们分配到一个数组中 数组大小未初始化 因为它取决于用户输入数字的次数 我应该如何分配数组长度 如果用户输入 5 6 7 8 9 5 个数字 则 int list becomes int l
  • SwingUtilities.invokeLater

    我的问题与SwingUtilities invokeLater 我应该什么时候使用它 每次需要更新 GUI 组件时都必须使用吗 它到底有什么作用 是否有替代方案 因为它听起来不直观并且添加了看似不必要的代码 Do I have to use
  • @Transactional 注解属于哪里?

    如果您将 Transactional in the DAO类和 或其方法 或者注释使用 DAO 对象调用的服务类是否更好 或者注释两个 层 是否有意义 我认为事务属于服务层 它是了解工作单元和用例的人 如果您将多个 DAO 注入到需要在单个
  • 如何根据从 jtextfield 和组合框接收的值将数据行添加到 Jtable

    我有一个JFrame表格有JTextFields JCombobox等等 我能够将这些值接收到变量 现在我想将接收到的数据添加到JTable当用户单击 添加 或类似的操作时在新行中 我创造了JTable使用 net beans 的问题是将这
  • 图标和导航视图之间的左边距

    我必须在图标和图标之间添加左边距NavigationView 如下图中箭头所示 我知道根据谷歌规范 这个边距必须有16dp但我需要改变它 我努力了
  • 莫基托。验证方法参数是特定类

    我有一个方法 void putObject
  • Java 中的连接路径

    In Python我可以连接两条路径os path join os path join foo bar gt foo bar 我正在尝试在 Java 中实现相同的目标 而不用担心是否OS is Unix Solaris or Windows
  • Java 执行器和长寿命线程

    我继承了一些使用 Executors newFixedThreadPool 4 的代码运行 4 个长寿命线程来完成应用程序的所有工作 这是推荐的吗 我读过Java 并发实践 https rads stackoverflow com amzn
  • 隐藏 JTable 临时列

    我正在使用 JTable 显示数据库中的数据 现在我想通过 Jcombobox 过滤我的 jtable 我正在使用 Jcombo 框 其中包含 030 024 045 等值 这些值已在 jtable 中设置为列标题 当我单击组合时 选定的列
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez

随机推荐

  • 深入浅出:前端浏览器缓存、清除缓存的几种方法

    介绍一个浏览器缓存机制的原理 https blog csdn net u014590757 article details 80140654 https www cnblogs com vajoy p 5341664 html https
  • 脊柱神经系统分布在哪里,脊柱神经系统分布图片

    脊柱两侧分出多少对脊神经 它构成了颈丛 臂丛 腰丛和骶丛 接着分布到全身 构成周围神经 31对脊神经 分别对应于31个脊髓节段上 即8颈 12胸 5腰 5骶 1尾 脊髓每个节段发出一对脊神经 颈丛由第1 4颈神经的前支构成 臂丛由第5 8颈
  • 使用Robot Framework实现多平台自动化测试

    基于Robot Framework Jenkins Appium Selenium Requests AutoIt等开源框架和技术 成功打造了通用自动化测试持续集成管理平台 以下简称 平台 显著提高了测试质量和测试用例的执行效率 01 设计
  • [1076]使用IntelliJ IDEA配置Tomcat

    文章目录 一 下载Tomcat 二 Tomcat环境变量配置 三 在IntelliJ IDEA配置Tomcat 一 下载Tomcat 1 进入官网Http tomcat apache org 选择download 下载所需要的Tomcat版
  • 单表查询

    简单sql查询语句应用 1 基本查询 查询Student表中全体学生的全部信息 select from Student go 查询全体学生的学号 姓名 select sno sname from Student go 2 查询时改变列标题的
  • Segmentation简记-Hybrid Task Cascade for Instance Segmentation

    创新点 1 Hybrid Task Cascade HTC 总结 基于maskrcnn和cascade rcnn的改进 论文中提出的几种cascade结构 a b结构就不细说了 分析一下c和d c较ab多出了一个结构 就是mask的casc
  • 基于Matlab的双向长短时记忆网络(BiLSTM)数据预测

    基于Matlab的双向长短时记忆网络 BiLSTM 数据预测 概述 在数据分析与预测领域 使用深度学习模型进行时间序列数据预测已成为一种常用的方法 本文将介绍如何使用Matlab中的双向长短时记忆网络 BiLSTM 模型对时间序列数据进行预
  • 超详细的计算机网络基础知识总结 第四章:网络层

    本文基于 王道计算机考研 计算机网络 其他文章 超详细的计算机网络基础知识 第一章 概述 超详细的计算机网络基础知识 第二章 物理层 超详细的计算机网络基础知识 第三章 数据链路层 超详细的计算机网络基础知识 第五章 传输层 超详细的计算机
  • 如何处理GPU上Error Number:700 an illegal memory access was encounter

    现象描述 GPU上网络运行过程中出现Error Number 700 an illegal memory access was encounter 原因分析 出现该现象 在框架稳定的背景下基本上可以确定是网络中有算子踩显存 因此CUDA上报
  • 毕业三年之际写给可能迷茫的你我

    工作半年 总感觉三分热度 难于沉淀 后劲不足 网上偶遇这篇文章 原来不止我一人是这样 遂转载此文以共勉 转自 http liugang ok iteye com blog 1969907 这些文字其实是在六月中下旬写的 算起来已经有好几个月
  • numpy生成等差等比数列

    文章目录 arange linspace logspace arange numpy arange start stop step dtype None 功能 Return evenly spaced values within a giv
  • java视频压缩

    项目开发中往往有一些时候可能会遇到一些上传视频 这时候我们如果上传一个手机拍摄的1分钟视频 大小110M 可能需要特别长的时间 这个时候就需要我们对视频进行压缩 虽然清晰度有所下降 但是对于一些特定的场景还是很有必要的 ffmpeg主要组成
  • 快速理解各类软件开发过程模型(瀑布模型、螺旋模型、喷泉模型等)

    快速理解各类开发过程模型 瀑布模型 螺旋模型 喷泉模型等等 1 开发模型 基础概念 2 结构化模型 瀑布模型 V模型 3 原型化模型 快速原型模型 增量模型 演化模型 螺旋模型 4 面向对象化模型 喷泉模型 5 其他模型 构建组装模型 6
  • 关于Wince进程外组件~ .

    转载自 http blog csdn net tttyd article details 6223594 Windows CE提供以下几种COM Base的应用 1 Minimal COM提供最基础的COM开发接口 API 每个com对象的
  • Spring中使用RedisTemplate操作Redis(spring-data-redis)

    https www cnblogs com songanwei p 9274348 html RedisTemplate如何检查一个key是否存在 return getRedisTemplate hasKey key 由一个问题 复习了一下
  • JAVA中的Runtime启动子进程并杀掉

    一 前言 最近在项目中需要将一个java工程打成一个jar包 并在运行jar包后启动通过java中的runtime类来启动一个nodejs的服务 在做的过程中遇到了一些不小的坑 下面就将其记录下来 二 Runtime类 Runtime cl
  • MySQL基础篇【第一篇】 数据库概述及数据准备、常用命令、查看表结构步骤

    作者简介 大家好我是 每天都要敲代码 一位材料转码农的选手 希望一起努力 一起进步 个人主页 每天都要敲代码的个人主页 系列专栏 MySQL专栏 推荐一款模拟面试 刷题神器 从基础到大厂面试题 点击跳转刷题网站进行注册学习 目录 一 数据库
  • Java课题笔记~ SpringBoot基础配置

    二 基础配置 1 配置文件格式 问题导入 框架常见的配置文件有哪几种形式 1 1 修改服务器端口 http localhost 8080 books 1 gt gt gt http localhost books 1 SpringBoot提
  • ELM:ELM基于近红外光谱的汽油测试集辛烷值含量预测结果对比—Jason niu

    ELM ELM基于近红外光谱的汽油测试集辛烷值含量预测结果对比 Jason niu load spectra data mat temp randperm size NIR 1 P train NIR temp 1 50 T train o
  • IDEA插件-CheckStyle的安装与使用

    目录 一 安装CheckStyle 二 配置CheckStyle 三 使用CheckStyle 一 安装CheckStyle 1 依次访问IDEA gt gt File gt gt Settings gt gt Plugins gt gt