日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

CheckStyle中文文檔(自己亂翻譯的)

系統(tǒng) 1913 0

CheckStyle是一個很有趣的開源框架,他可以幫助檢查Java代碼中的代碼規(guī)范,傳統(tǒng)的代碼檢查是一種很無聊的工作,而且無法全面的去檢查,而大公司一般都會定期的進行代碼檢查,不想做也不行,怕被別人找麻煩。而CheckStyle就是一個可以幫助我們自動去檢查Java代碼的工具,替我們分擔了不少無聊(但也是重要)的工作。

?

CheckStyle是一個高度可配置(通過XML配置需要檢查的規(guī)范),他不但是免費的軟件,而且還是一個開源的軟件

?

在CheckStyle的軟件包里面還包括很多有名的代碼規(guī)范,如 Sun Code Conventions (Sun公司的代碼規(guī)范),其他的例子其實也都是有名的代碼規(guī)范。

?

CheckStyle可以檢查你的代碼中的很多方面,以前它只是用來檢查規(guī)范,但在版本3后,很多的規(guī)則被添加進來,以致它開始可以用來檢查Java代碼中的一些程序缺陷。

?

CheckStyle的源程序以及編譯好的軟件包可以在SourceForge里面下載,下載的地址是:

?

http://sourceforge.net/project/showfiles.php?group_id=29721

?

你也可以從SVN上去獲取CheckStyle最新的代碼

?

相關(guān)工具:

?

CheckStyle可以在命令行或者Ant里運行

?

另外,Eclipse和NetBean上都可以找到CheckStyle的插件

?

?

CheckStyle最新的版本是5.1

?

CheckStyle的配置

?

CheckStyle的配置主要配置哪些規(guī)則會被應用到代碼的檢查中,規(guī)則用XML來配置,所以規(guī)則都會添加在Root 的Module里面,也就是說Root是最根本的級別。

?

TreeWalker:在TreeWalker里面定義的Module會在輪流在源碼所以解析成的語法樹里面去驗證規(guī)則

?

接下來是一個典型的配置文檔

?

            <module name="Checker">
    <module name="JavadocPackage"/>
    <module name="TreeWalker">
        <module name="AvoidStarImport"/>
        <module name="ConstantName"/>
        <module name="EmptyBlock"/>
    </module>
</module>
          

?

JavadocPackage是一個很奇怪的檢查,他檢查文件的目錄上是不是有一個package-info.java,一個是Java1.5后的一個新功能,目錄是讓所有的包都有一個共同的注釋。

?

Module TreeWalker里面有三個子Module,分別是AvoidStarImport(不允許*導入,也就是類要一個一個導),ConstantName(變量命名規(guī)則,這個規(guī)則基本上是通用的),EmptyBlock。

?

對于每一個Module,CheckStyle都會加載一個規(guī)則類來處理,以下是幾條CheckStyle加載類的規(guī)則

?

1. 直接導入,如果是已經(jīng)定義了包名的規(guī)則類,CheckStyle直接把這個包與類名導入

?

2. 如果沒有定義包名,則會自動在包 com.puppycrawl.tools.checkstyle.checks找到相應的類

?

3. 會自動在類名后自動加Check,如果類名后沒有Check的話

?


Module的屬性

?

我們是可以在Module里面定義屬性的,這樣我們才可以更好的定義規(guī)則。

?

比如:

?

    <module name="MethodLength">
    <property name="max" value="60"/>
</module>
  

?

這個Module表示檢查方法的長度不可以超過60行,這里定義了一個max屬性

?

TreeWalker下的規(guī)則

?

TreeWalker下的規(guī)則都是和語法樹有關(guān)的規(guī)則

?

比如:

?

    <module name="MethodLength"/>
  

?

這里是檢查方法的長度,方法屬于語法樹的范圍,默認的屬性是 {METHOD_DEF, CTOR_DEF} (構(gòu)造方法與普通方法都檢查),如果改成這樣

            <module name="MethodLength">
    <property name="tokens" value="METHOD_DEF"/>
</module>
        <module name="MethodLength">
    <property name="tokens" value="CTOR_DEF"/>
    <property name="max" value="60"/>
</module>
          

?

這樣就會把普通方法與構(gòu)造方法分開來檢查

CheckStyle中文文檔(自己亂翻譯的)


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 怀集县| 聂荣县| 伊金霍洛旗| 七台河市| 南充市| 缙云县| 利川市| 义马市| 黄梅县| 蚌埠市| 吴旗县| 德庆县| 台安县| 盐源县| 汽车| 湖北省| 怀集县| 东丽区| 高安市| 社会| 周宁县| 青海省| 怀集县| 禄丰县| 隆尧县| 拜泉县| 子长县| 巨鹿县| 武强县| 渝中区| 化隆| 尚志市| 新闻| 旬阳县| 九龙县| 岑溪市| 龙井市| 习水县| 全椒县| 汶川县| 军事|