Eclipse中使用Checkstyle,checkstyle插件檢查java代碼的自定義配置文件:

摘要:近來項目組在搞代碼檢查,所以領導讓把checkstyle這個插件搞明白,現在我把我們寫的自定義的checkstyle.xml文件記錄一下,以便大家可以一起使用:

一:要使用checkstyle插件在eclipse中檢查java代碼,那必須的先安裝eclipse的checkstyle插件,如何安裝,我相信大家知道,這里就不多說了

二:下面就是自定義的checkstyle.xml文件(這個是核心)

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN" "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">  
<!--  This configuration file was written by the eclipse-cs plugin configuration editor  
-->  
<!--  Checkstyle-Configuration: check  Description: none  
-->  
<module name="Checker"><property name="severity" value="error"/><property name="charset" value="UTF-8"/><message key="general.exception" value="有一個異常 - {0}  "/><message key="general.fileNotFound" value="文件沒找到!"/><!--章節2.2A  --><!-- 不允許使用TAB縮進,此規則必須在<TreeWalker>標簽外 --><module name="FileTabCharacter"><property name="severity" value="error"/><property name="eachLine" value="true"/><message key="containsTab" value="本行包含 tab 字符,違反編碼規范2.2章節"/></module><!--章節3.1.1  --><!-- 檢查每個java package中是否有java注釋文件,默認是允許一個package-info.java,也可以通過allowLegacy屬性配置允許package.html。此規則必須在<TreeWalker>標簽外 --><module name="JavadocPackage" /><module name="TreeWalker"><property name="severity" value="error"/>  <property name="tabWidth" value="4"/>  <message key="general.exception" value="有一個異常 - {0}"/> <!--章節1.2.2 --><!-- 修飾符順序檢測 --><module name="ModifierOrder">  <message key="mod.order" value="''{0}'' 修飾符順序錯誤.違反編碼規范1.2.2章節"/>  <message key="annotation.order" value="''{0}'' 注釋修飾符不能在非注釋修飾符前面."/>  </module><!--章節2.2B  -->	<!-- 縮進風格--><module name="Indentation"><property name="severity" value="error"/><property name="basicOffset" value="4"/><message key="indentation.error" value="你縮進了{1}個空格,正確應該縮進 {2}個空格,違反編碼規范2.2章節"/><!-- 子級縮進 --><message key="indentation.child.error" value="你縮進了{1}個空格,正確應該縮進 {2}個空格,違反編碼規范2.2章節"/></module><!--章節2.3  --><!-- 頁寬--><module name="LineLength">  <property name="max" value="80"/>  <message key="maxLineLen" value="行字符數超過80個.違反編碼規范2.3章節"/>  </module> <!--章節2.4 --><!--操作符換行策略檢查--><module name="OperatorWrap"><property name="severity" value="error"/><property name="option" value="nl"/><property name="tokens" value="ASSIGN,BAND,BOR,DIV,EQUAL,GE,GT,LAND,LE,LOR,LT,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,QUESTION,STAR,STAR_ASSIGN"/><message key="line.after" value="''{0}'沒有放在新行之首,違反編碼規范2.4章節"/></module>    <!--章節2.6  --><module name="ParenPad"><property name="severity" value="error"/><property name="tokens" value="LPAREN,RPAREN,CTOR_CALL,METHOD_CALL,SUPER_CTOR_CALL"/><message key="ws.followed" value="''{0}'' 后面有空格,違反編碼規范2.6章節"/><message key="ws.preceded" value="''{0}''前面有空格,違反編碼規范2.6章節"/></module>    <module name="TypecastParenPad"><property name="severity" value="error"/><property name="tokens" value="RPAREN,TYPECAST"/><message key="ws.followed" value="''{0}''后面多一個空格,違反編碼規范2.6章節"/><message key="ws.preceded" value="''{0}''前面多一個空格,違反編碼規范2.6章節"/></module>    <module name="WhitespaceAfter"><property name="severity" value="error"/><property name="tokens" value="COMMA,SEMI"/><message key="ws.notFollowed" value="''{0}''后面多一個空格,違反編碼規范2.6章節"/></module>    <module name="WhitespaceAround"><property name="severity" value="error"/><property name="tokens" value="RCURLY,LITERAL_ASSERT,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE"/><property name="allowEmptyConstructors" value="true"/><property name="allowEmptyMethods" value="true"/><message key="ws.notPreceded" value="''{0}'' 關鍵字前少一個空格,違反編碼規范2.6章節"/><message key="ws.notFollowed" value="''{0}'' 關鍵字后少一個空格,違反編碼規范2.6章節"/></module><!--章節2.7 --><!-- 每行語句數量--><module name="OneStatementPerLine"><!--模塊的元數據類型設置,經過測試發現該標簽沒用--><metadata name="net.sf.eclipsecs.core.comment" value="Coding Problems-> Only one statement per line allowed" /><message key="multiple.statements.line" value="禁止一行有多句代碼,違反編碼規范2.7章節" /></module><!--章節2.8 --><!-- 每行變量聲明數量--><module name="MultipleVariableDeclarations">  <property name="severity" value="error"/>  <message key="multiple.variable.declarations.comma" value="每一個變量的定義必須在它的聲明處,且在同一行,違反編碼規范2.8章節"/>  <message key="multiple.variable.declarations" value="每一行只能定義一個變量,違反編碼規范2.8章節"/>  </module> 	<!--章節2.9.1  --><!-- Checks the placement of right curly braces ('}') for  else, try, and catch tokens. The policy to verify is specified using property  option.   option: 右大括號是否單獨一行顯示  tokens: 定義檢查的類型  -->  <module name="RightCurly">    <property name="option" value="alone"/> <property name="severity" value="error"/>     			</module> <!--章節2.9.1  -->  <!-- 檢查左側大括號 左側大括號必須放在前一行代碼的行尾 --><module name="LeftCurly"><property name="severity" value="error"/><message key="line.previous" value="左側大括號沒有放在前一行代碼的行尾,違反編碼規范2.9.1章節"/></module>	<!--章節2.9.2  --><!-- 檢查代碼塊是否缺失大括號--><module name="NeedBraces">  <message key="needBraces" value="''{0}'' 結構沒有用大括號 '''{}'''s,違反編碼規范2.9.2章節"/>  </module>	<!-- 章節3.2 --><!-- 對文件頭的注釋進行檢查 --><!--章節3.3  --><!--對類和接口的javadoc注釋進行檢查--><module name="JavadocType"><property name="severity" value="error"/><message key="type.missingTag" value="Javadoc 類型的注釋丟失 {0} 標簽.違反編碼規范3.3章節"/><message key="javadoc.missing" value="缺少 Javadoc 注釋.違反編碼規范3.3章節"/><message key="javadoc.unusedTagGeneral" value="未使用過的 Javadoc 標簽.違反編碼規范3.23章節"/><message key="javadoc.unusedTag" value="未使用過的 {0} 標簽for ''{1}''.違反編碼規范3.3章節"/><message key="type.tagFormat" value="Javadoc 類型標簽 {0}必須匹配模式 ''{1}''.違反編碼規范3.3章節"/></module><!--章節3.4,3.7  --> 	<!--public protect private變量的注釋進行檢查--><module name="JavadocVariable"><property name="severity" value="error"/><property name="scope" value="public"/><message key="javadoc.missing" value="變量注釋:缺少Javadoc注釋,違反編碼規范3.4章節"/></module>	<module name="JavadocVariable"><property name="severity" value="error"/><property name="scope" value="protected"/><message key="javadoc.missing" value="變量注釋:缺少Javadoc注釋,違反編碼規范3.4章節"/></module>	<module name="JavadocVariable"><property name="severity" value="error"/><message key="javadoc.missing" value="變量注釋:缺少Javadoc注釋,違反編碼規范3.4章節"/></module> 	<!--章節3.5  --><!-- 檢查所有方法的javadoc,可以不聲明RuntimeException --><module name="JavadocMethod"><property name="allowUndeclaredRTE" value="true"/><!--允許get set 方法沒有注釋--><property name="allowMissingPropertyJavadoc" value="true"/><message key="javadoc.missing" value="方法注釋:缺少Javadoc注釋,違反編碼規范3.5章節"/></module>		<!-- 命名規范 --><!--章節4.2 --><!-- 包名命名規范 --><module name="PackageName">	    <!-- <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>  --> <property name="format" value="^org\.neris\.[a-z]+(\.[a-z]+)+$"/>      <message key="name.invalidPattern" value="包名 ''{0}'' 不符合org.neris.項目名.模塊名,違反編碼規范4.2章節"/>  </module> <!--章節4.3,4.4  --><!-- 類的命名,匹配規則默認:(^[A-Z][a-zA-Z0-9]*$),必須以大寫字母開始 --><module name="TypeName">  <property name="tokens" value="CLASS_DEF"/><message key="name.invalidPattern" value="類名 ''{0}''沒有通過大駝峰命名法命名,具體名稱應使用意義完整的英文描述,違反編碼規范4.3章節"/> </module> <!-- 接口命名,匹配規則默認:(^[A-Z][a-zA-Z0-9]*$),必須以大寫字母開始 --><module name="TypeName"> 	<property name="tokens" value="INTERFACE_DEF"/><message key="name.invalidPattern" value="接口名 ''{0}''沒有通過大駝峰命名法命名,具體名稱應使用意義完整的英文描述,違反編碼規范4.3章節"/> </module><!--章節4.6 --><!-- 方法名命名 -->	<module name="MethodName">  <property name="severity" value="error"/>  <property name="format" value="(^[a-z][a-zA-Z0-9]*$)"/>  <message key="name.invalidPattern" value="方法名 ''{0}''沒有通過小駝峰命名法命名,具體名稱應使用意義完整的英文描述.違反編碼規范4.6章節"/>       </module>  <!--章節4.7 --><!-- 局部變量命名 --><module name="LocalVariableName">       <property name="format" value="(^[a-z][a-zA-Z0-9]*$)"/>  <message key="name.invalidPattern" value="變量名 ''{0}''沒有通過小駝峰命名法命名,具體名稱應使用意義完整的英文描述.違反編碼規范4.7章節"/>      </module>	<!-- 局部的final變量,包括catch中的參數的檢查 -->   <module name="LocalFinalVariableName" >  <property name="severity" value="error"/><message key="name.invalidPattern" value="變量名 ''{0}''沒有通過小駝峰命名法命名,具體名稱應使用意義完整的英文描述.違反編碼規范4.7章節"/></module><!-- 變量命名 --><module name="MemberName">  <message key="name.invalidPattern" value="變量名 ''{0}''沒有通過小駝峰命名法命名,具體名稱應使用意義完整的英文描述.違反編碼規范4.7章節"/>  </module>	<!-- 靜態變量命名 --><module name="StaticVariableName"><message key="name.invalidPattern" value="變量名 ''{0}''沒有通過小駝峰命名法命名,具體名稱應使用意義完整的英文描述.違反編碼規范4.7章節"/></module><!-- 數組變量命名 --><module name="ArrayTypeStyle"><property name="severity" value="error"/><message key="array.type.style" value="數組定義沒有采取int[] index這種方式,違反編碼規范4.7.2章節"/></module>	<!--章節4.8 --><!-- 常量命名--><module name="ConstantName"><property name="severity" value="error"/><message key="name.invalidPattern" value="常量 ''{0}'' 常量名違反編碼規范4.8章節."/></module><!--章節5.1 --><!-- import語句不使用通配符 --><module name="AvoidStarImport"><property name="severity" value="error"/><message key="import.avoidStar" value="引用包時不能使用*號.違反編碼規范5.1章節"/></module>      <!--章節5.2 --><!-- 魔法數檢測--><module name="MagicNumber">  <property name="severity" value="error"/>  <message key="magic.number" value="''{0}'' 是一個魔法數(即常數).違反編碼規范5.2章節"/>  </module><!--章節5.4 --><!-- 多余的關鍵字,包含不適用this作為關鍵字 --> <module name="RedundantModifier">  <message key="redundantModifier" value="''{0}'' 多余的修飾符.違反編碼規范5.4章節"/>  </module>	<!--章節5.5 --><!-- 重載父類方法 --><module name="MissingOverride">	<message key="annotation.missing.override" value="重載方法缺少@Override,違反編碼規范5.5章節" /><message key="tag.not.valid.on" value="注釋-> Javadoc {0}標簽在這個位置是無效的." /></module>	<!--章節5.6 --><!--判斷語句使用  --><module name="SimplifyBooleanExpression"><property name="severity" value="error"/><message key="simplify.expression" value="存在布爾冗余,違法編碼規范5.6章節."/></module><!--章節5.7 --><!-- 檢查switch語句是否忘記了default標簽 --><module name="MissingSwitchDefault" ><property name="severity" value="error"/><message key="missing.switch.default" value="switch 語句后邊沒有 default 語句.違法編碼規范5.7章節"/></module><!-- 檢查switch語句中default標簽的順序 --><module name="DefaultComesLast"><property name="severity" value="error"/><message key="default.comes.last" value="建議Default 放在 switch 語句的最后."/></module>	<!--章節5.9 --><!-- 禁止使用System.out.println --><module name="Regexp"><property name="format" value="System\.out\.println"/> <property name="message" value="不要使用 System.out 與 System.out 進行控制臺打印,應該使用日志工具類(如:log4j)進行統一記錄或者打印,違法編碼規范5.9章節"/>	<property name="illegalPattern" value="true"/></module><!-- 禁止使用System.err.println --><module name="Regexp"><property name="format" value="System\.err\.println"/> <property name="message" value="不要使用 System.out 與 System.err 進行控制臺打印,應該使用日志工具類(如:log4j)進行統一記錄或者打印,違法編碼規范5.9章節"/>	<property name="illegalPattern" value="true"/></module>	<!--章節5.10 --><!-- 不允許用main方法測試--><module name="UncommentedMain"></module><!--章節5.11 --><!-- NeedBraces 檢查是否應該使用括號的地方沒有加括號  tokens: 定義檢查的類型 -->  <module name="NeedBraces"/>  </module>  </module>


三:安裝好eclipse的checkstyle插件后,你就可以把checkstyle.xml文件添加進去,如何添加,網上有很多文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443443.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443443.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443443.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 下安裝 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步驟:

摘要&#xff1a;近來又用到了Linux系統&#xff0c;所以就又新裝了一個虛擬機和CentOS 6.4來用&#xff0c;搞開發的程序猿們可能都知道&#xff0c;在現在的很多企業中&#xff0c;生產環境大多都是Linux服務器&#xff0c;并且用的比較多的大都是CentOS&#xff0c;Red hat系…

Win7+VMware10.0+CentOS 6.4+Tomcat,Win7訪問不了CentOS6.4上的Tomcat

摘要&#xff1a;今天在linux下安裝Tomcat后&#xff0c;在虛擬機本地通過:http://localhost:8080/可以訪問安裝好的Tomcat服務器&#xff0c;但是在本機就不能訪問&#xff0c;前提是在本機下可以ping的通虛擬機的IP地址的&#xff0c;最后經過Google&#xff0c;發現說可能是…

Linux下配置OpenLDAP服務記錄

摘要&#xff1a;最近部門需要整合所有的系統&#xff0c;所以領導說要通過OpenLdap數據庫來實現對所有系統的統一管理&#xff0c;所以需要在服務器上配置一下LDAP服務&#xff0c;我們這里選擇的是OpenLdap服務&#xff0c;我在網上搜索了很多&#xff0c;開始都沒有配置成功…

Linux下配置CollabNet Subversion Edge

摘要&#xff1a;最近一直都在搞一下管理員的工作&#xff0c;今天又搞了svn的管理工具CollabNetSubversionEdge&#xff0c;網上也有很多例子&#xff0c;但是很多都是可以訪問到web界面&#xff0c;但是不能啟動版本庫的服務&#xff0c;所以我經過多次嘗試&#xff0c;終于解…

養成讓自己進步的10個習慣

養成讓自己進步的10個習慣 1.永遠不說不可能。"辦法總比問題多" 2.凡事第一反應找方法&#xff0c;不是找借口。"不要推卸責任" 3.養成記錄習慣&#xff0c;不太依賴腦袋。"好記性不如爛筆頭" 4.每天出門照鏡子&#xff0c;給自己自信的微笑。&…

Oracle存儲過程中使用游標來批量解析CLOB字段里面的xml字符串:

摘要&#xff1a;之前在項目中使用到了Oracle數據庫中通過觸發器去調用存儲過程執行數據解析并Update到對應的數據表中&#xff0c;但是&#xff0c;經過一段時間的測試使用發現&#xff0c;如果job那天停掉了&#xff0c;然后你再重新新建job的話&#xff0c;這時候可能會有很…

Maven配置nexus

摘要&#xff1a;近來一直在搭建maven結構的開發框架&#xff0c;其中這個過程中用到了nexus私服&#xff0c;這里我把我經過查詢總結的最終的方式記錄一下&#xff0c;以便后面忘記了&#xff1a; 一&#xff1a;nexus私服的安裝(略) 二&#xff1a;倉庫的講解如下圖: 1、ho…

Maven項目發布的配置

摘要&#xff1a;要想發布maven結構的項目到nexus私服上&#xff0c;可以通過兩種方式來&#xff0c;一種是在項目的pom.xml文件里面配置&#xff0c;另一種是通過命令的方式發布到nexus私服上&#xff0c;但是這種方式的前提也得在settings.xml文件配置用戶: 一&#xff1a;M…

MariaDB通過命令行的方式導出指定數據庫和還原指定數據庫

摘要&#xff1a;今天由于需要需要從本地導出一份VP系統的數據庫腳本&#xff0c;以前我都是通過工具直接導出&#xff0c;現在有同事說可以通過mysql的命令方式導出&#xff0c;我試了一下&#xff0c;可以&#xff0c;現在記錄一下&#xff01; 一&#xff1a;在MariaDB的安裝…

java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

一&#xff1a;如果出現下面的錯誤信息&#xff0c;如果你的項目是Maven結構的&#xff0c;那么一般都是你的項目的Maven Dependencies沒有添加到項目的編譯路徑下&#xff1a; 五月 10, 2015 6:23:18 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR …

Maven 打成 Webjar的方法

摘要&#xff1a;今天領導說要把自己定義的樣式文件和js文件打成一個自定義的webjar&#xff0c;所以就寫了一下&#xff0c;現在記錄一下&#xff1a; 1. 先把要打包成webjar的文件放到你新建的maven結構的項目的/src/main/resources目錄下 2.編寫該項目的pom.xml文件&#…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要&#xff1a;今天領導說要把項目通過maven生產源碼包和文檔包并發布到自己的私服上&#xff0c;經過查看mavne官網發現有兩個maven插件可以做到這些工作&#xff0c;一個是maven-source-plugin&#xff0c;另一個是maven-javadoc-plugin&#xff0c;現在記錄一下&#xff0…

Maven之生成測試覆蓋度的插件cobertura-maven-plugin的使用

摘要&#xff1a;Maven中可以通過使用插件檢查一個項目的測試代碼的覆蓋度&#xff0c;這個插件就是cobertura-maven-plugin&#xff0c;這個插件如何使用我做了測試&#xff0c;現在記錄一下&#xff01; 一&#xff1a;首先在你的項目的pom.xml文件中增加該插件的配置&#x…

Linux下開啟mysql數據庫的遠程訪問權限

摘要&#xff1a;今天在Linux服務器上安裝了msyql數據庫&#xff0c;在本地訪問的時候可以訪問&#xff0c;但是我想通過遠程的方式訪問的時候就不能訪問了&#xff0c;查詢資料后發現&#xff0c;Linux下mysql默認安裝完成后只有本地訪問的權限&#xff0c;沒有遠程訪問的權限…

Maven之自定義pom類型的基礎項目

摘要&#xff1a;在當前的軟件開發場景中&#xff0c;大都是通過maven管理項目&#xff0c;而如果使用maven的話&#xff0c;其實也會有很多問題&#xff0c;比如項目中依賴的版本管理就是一個很頭疼的事&#xff0c;如果一個項目中有很多人同時開發那么這就很可能造成大家添加…

Maven之搭建本地私服(nexus)倉庫

摘要&#xff1a;現在越來越多的項目都在使用Maven管理項目&#xff0c;尤其是在大型的項目團隊中使用Maven能帶來更加多的好處&#xff0c;私服的好處我相信大家都明白&#xff0c;在這里我就不多說了&#xff0c;它最重要的作用就是可以讓項目團隊成員更加方便的下載對應的項…

項目管理4321方法論

文章目錄 一、項目立項準備&#xff08;4步&#xff09;case1、識別價值---解決背后痛點的才是價值&#xff0c;價值是做任何事情的出發點case2、明確目標---支撐價值實現的&#xff0c;目標是 具體/可衡量/可達到/相關性/有時限的case3、識別干系人---找對人才能做對事&#x…

Maven之自定義archetype生成項目骨架(一)

摘要&#xff1a;使用過Maven的人都知道maven中有許多功能都是通過插件來提供的&#xff0c;今天我們來說一下其中的一個插件&#xff1a;maven-archetype-plugin&#xff0c;通過該插件可以自定義符合我們自己需求的archetype。 一:什么是Archetype 總之&#xff0c;原型是一…

匆匆那年之Java程序員之最近兩周的面試總結:

匆匆那年之Java程序員之最近兩周的面試總結&#xff1a; (一):匆匆那年之來帝都之初&#xff1a; 還記得那是2011年的冬天&#xff0c;我們一行20多個同學一起來到了這個一直向往的城市首都&#xff0c;剛到北京是凌晨4點30&#xff0c;負責送我們的老師 已經安排好了我們的住處…

Exception in thread main com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport e

摘要&#xff1a;在調用webservice客戶端代碼的時候報如下錯誤 Invoking reportLossByRdid... Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: java.net.UnknownHostException: opacat com.sun.xml.in…