国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

CheckStyle 及其配置的詳細(xì)解釋

2019-11-18 11:55:16
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  代碼格式化的好處我想我就不需要說(shuō)了,大家肯定也都理解其優(yōu)點(diǎn),否則你也不會(huì)看這個(gè)文檔.
  
  這里我以CheckStyle3.4為例,講解CheckStyle的使用,確切的說(shuō)是其配置的具體解釋,假如你是Checkstyle3.4以下,那么有一部分module將是不可以答應(yīng)的,請(qǐng)刪除之;在這份文檔中我試圖把所有的module都分析講解一次,同時(shí)下面的這份文檔也是我的設(shè)置,對(duì)于我個(gè)人不喜歡的設(shè)置我都注釋了,假如你需要請(qǐng)取消注釋或如何!!
  
  Checkstyle簡(jiǎn)介,其是目前最廣泛使用的代碼檢查工具,功能強(qiáng)大,操作簡(jiǎn)單可以和Ant結(jié)合使用,最重要的是其是Open Source的,你不用擔(dān)心收到律師函,哈哈!
  
  主頁(yè): http://checkstyle.sourceforge.net/
  
  下載本文示例: olics_checkstyle_checks.zip
  
  開(kāi)始我們的講解:
  首先,Checkstyle可以和Ant結(jié)合使用,下面是Ant腳步片斷
  <!--CheckStyle配置,這里你替換成你實(shí)際的環(huán)境-->
  <property name="checkstyle.config" value="${project.docs.dir}/checkstyle_checks.XML"/>
  <property name="checkstyle.report.style" value="${project.docs.dir}/checkstyle-frames.xsl"/>
  <property name="checkstyle.result" value="${build.checkstyleReport.dir}/checkstyle_result.xml"/>
  <property name="checkstyle.report" value="${build.checkstyleReport.dir}/checkstyle_report.Html"/>
  <!—CheckStyle腳步-->
  <taskdef resource="checkstyletask.properties" classpathref=" checkstyle-all-3.4.jar"/>
  <target name="checkstyle_check" depends="init">
  <checkstyle config="${checkstyle.config}" failOnViolation="false" failureProperty="checkstyle.failure">
  <formatter type="xml" tofile="${checkstyle.result}"/>
  <fileset dir="${project.src.dir}" includes="**/*.Java"/>
  </checkstyle>
  <!—生成報(bào)告,其格式取決于${checkstyle.report.style}-->
  <style in="${checkstyle.result}" out="${checkstyle.report}" style="${checkstyle.report.style}"/>
  </target>
  
  下面是我理解的 Checkstyle 的使用 :
  
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
  "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
  <!-- 對(duì)于所有的模塊來(lái)書,假如有這個(gè)模塊則說(shuō)明檢測(cè)這一項(xiàng),沒(méi)有則不檢測(cè)這一項(xiàng) -->
  <!-- 所有的模塊中,其ROOT必須為Checker -->
  <module name="Checker">
  <!-- 檢驗(yàn)每個(gè)包是否存在package.html文件-->
  <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
  <!--
  <module name="PackageHtml"/>
  -->
  <!-- 檢驗(yàn)每個(gè)文件末尾是否有一個(gè)空行,在UNIT機(jī)器上是有的,在CVS上假如沒(méi)有會(huì)有警告的-->
  <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
  <!--
  <module name="NewlineAtEndOfFile"/>
  -->
  <!-- Checks that property files contain the same keys. -->
  <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
  <module name="Translation"/>
  <module name="TreeWalker">
  <!-- Checks for Javadoc comments. -->
  <!-- See http://checkstyle.sf.net/config_javadoc.html -->
  <!-- Checks Javadoc comments for method definitions.-->
  <module name="JavadocMethod">
  <property name="scope" value="public"/>
  <!-- 是否答應(yīng)錯(cuò)誤的參數(shù)聲明,true為答應(yīng),缺省為不答應(yīng) -->
  <property name="allowMissingParamTags" value="true"/>
  <!-- 是否答應(yīng)錯(cuò)誤的錯(cuò)誤聲明,true為答應(yīng),缺省為不答應(yīng) -->
  <property name="allowMissingThrowsTags" value="true"/>
  <!-- 是否答應(yīng)錯(cuò)誤的返回類型聲明,true為答應(yīng),缺省為不答應(yīng) -->
  <property name="allowMissingReturnTag" value="true"/>
  </module>
  <!--Checks Javadoc comments for class and interface definitions.-->
  <module name="JavadocType"/>
  <!-- Checks that variables have Javadoc comments.-->
  <module name="JavadocVariable">
  <property name="scope" value="protected"/>
  </module>
  <!-- 檢查Javadoc的格式 -->
  <module name="JavadocStyle">
  <property name="scope" value="public"/>
  <!-- Comment的第一句的末尾是否要有一個(gè)句號(hào),true必須有,default為true -->
  <property name="checkFirstSentence" value="false"/>
  <!-- 檢查錯(cuò)誤的HTML腳本,比如不匹配,true檢查,default為true -->
  <property name="checkHtml" value="true"/>
  </module>
  <!-- Checks for Naming Conventions. -->
  <!-- See http://checkstyle.sf.net/config_naming.html -->
  <!-- 確省必須以Abstract開(kāi)始或者以Factory結(jié)束 -->
  <!--
  <module name="AbstractClassName"/>
  -->
  <module name="ConstantName"/>
  <module name="LocalFinalVariableName"/>
  <module name="LocalVariableName"/>
  <module name="MemberName"/>
  <module name="MethodName"/>
  <module name="PackageName"/>
  <module name="ParameterName"/>
  <module name="StaticVariableName"/>
  <module name="TypeName"/>
  <!-- Checks for Headers -->
  <!-- See http://checkstyle.sf.net/config_header.html -->
  <!-- 檢查文件是否以指定文件開(kāi)始,這里最好是放一些版權(quán)信息和工程描述 -->
  <!-- headerFile:指定的文件 -->
  <!-- ignoreLines:忽略哪些行,以","分隔 -->
  <!--
  <module name="Header">
  <property name="headerFile" value="java.header"/>
  <property name="ignoreLines" value="2, 3, 4, 5"/>
  </module>
  -->
  <!-- Following interprets the header file as regular eXPressions. -->
  <!--
  <module name="RegexpHeader"/>
  -->
  <!-- Checks for imports -->
  <!-- See http://checkstyle.sf.net/config_import.html -->
  <!-- 檢查使用*號(hào)的導(dǎo)入,默認(rèn)為全部類 -->
  <module name="AvoidStarImport"/>
  <!-- 檢查是否有非法的包,確省檢查sun.*;對(duì)于某些包是不建議直接調(diào)用的 -->
  <module name="IllegalImport">
  <property name="illegalPkgs" value="sun.*"/>
  </module>
  <!-- 檢查多于的導(dǎo)入,如一個(gè)類導(dǎo)入了多次 -->
  <module name="RedundantImport"/>
  <!-- 檢查沒(méi)有使用的導(dǎo)入 -->
  <module name="UnusedImports"/>
  <!-- 導(dǎo)入排序 -->
  <!-- groups:分組,哪些是一組的 -->
  <!-- ordered:同一個(gè)組內(nèi)是否排序,true排序,確省為true -->
  <!-- separated:各個(gè)組之間是否需要用空行分隔,確省為false -->
  <!-- caseSensitive:是否是大小寫敏感的,確省是 -->
  <!--
  <module name="ImportOrder">
  <property name="groups" value="java,javax"/>
  <property name="ordered" value="true"/>
  <property name="separated" value="true"/>
  <property name="caseSensitive" value="true"/>
  </module>
  -->
  <!-- Checks for Size Violations. -->
  <!-- See http://checkstyle.sf.net/config_sizes.html -->
  <!-- 檢查方法內(nèi)可執(zhí)行語(yǔ)句的個(gè)數(shù),確省為30行 -->
  <!--
  <module name="ExecutableStatementCount">
  <property name="max" value="30"/>
  </module>
  -->
  <!-- 文件的最大行數(shù),缺省為1500 -->
  <module name="FileLength">
  <property name="max" value="2000"/>
  </module>
  <!-- 每行的最大字符數(shù),缺省為80 -->
  <module name="LineLength">
  <!-- 忽略指定格式的行,如*號(hào)開(kāi)始的,等 -->
  <!--
  <property name="ignorePattern" value="^ */* *[^ ]+$"/>
  -->
  <property name="max" value="120"/>
  </module>
  <!-- 方法的最大行數(shù),缺省為150 -->
  <module name="MethodLength">
  <property name="max" value="200"/>
  <!-- 統(tǒng)計(jì)時(shí)是否包括空行和以//開(kāi)始的注釋,缺省為統(tǒng)計(jì)(true)-->
  <property name="countEmpty" value="false"/>
  </module>
  <!-- 匿名類的最大行數(shù),缺省為20 -->
  <module name="AnonInnerLength">
  <property name="max" value="60"/>
  </module>
  <!-- 檢查方法和構(gòu)造子參數(shù)的最大個(gè)數(shù),缺省為7 -->
  <module name="ParameterN

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆树市| 滦南县| 山东省| 呈贡县| 邛崃市| 鄂温| 华宁县| 永胜县| 治多县| 上虞市| 十堰市| 汶川县| 凤冈县| 堆龙德庆县| 德昌县| 安仁县| 亳州市| 丰原市| 阳春市| 礼泉县| 平江县| 正镶白旗| 景东| 陇西县| 磴口县| 林州市| 昂仁县| 大宁县| 葫芦岛市| 南宁市| 芜湖市| 于都县| 漳浦县| 时尚| 武定县| 舒兰市| 金华市| 烟台市| 东方市| 吉木萨尔县| 大余县|