中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

南沙網(wǎng)站建設小說搜索風云榜

南沙網(wǎng)站建設,小說搜索風云榜,嘉興建站模板源碼,wordpress打字特效最近的Java后端項目想實現(xiàn)代碼的規(guī)范檢查,調(diào)研了一圈,終于找到了簡單的方式實現(xiàn):以下是常見的幾種方案: 1、在客戶端做 git hook,主要是用 pre-commit 這個鉤子。前端項目中常見的 husky 就是基于此實現(xiàn)的。但缺點也很…

最近的Java后端項目想實現(xiàn)代碼的規(guī)范檢查,調(diào)研了一圈,終于找到了簡單的方式實現(xiàn):以下是常見的幾種方案:

1、在客戶端做 git hook,主要是用?pre-commit?這個鉤子。前端項目中常見的 husky 就是基于此實現(xiàn)的。但缺點也很明顯,就是在本地把這個鉤子刪了、或者?git commit --no-verify?就繞開了。不過小團隊、大家約定好的話這種方案是最方便的。

2、在服務端做 git hook,主要是用?pre-receive?這個鉤子。

3、不限制 push、但通過其他方式限制。比如可以通過 CI 限制,例如在 forking-workflow 模式中設置在 Merge 時自動執(zhí)行一個 Actions 來執(zhí)行 Lint,對于不合格的 Merge Request 直接關閉掉不允許合并,以變相到達不合格代碼進入主干的目的。

其中 1、2 兩點跟 GitLab 無關,需要的都是寫 Shell 腳本而已。第 3 種可以在 GitLab 用圖形化方式設置。

小團隊的第一種用的比較多;大團隊這一步驟大多是跟 CI/CD 工作流緊密結合的。

我們用的方式是第一種在客戶端校驗,加上checkStyle 工具包,checkStyle可以直接在IDEA插件中搜索。

?

下載Checkstyle jar包 官網(wǎng)地址,GitHulb,目前最近版本為checkstyle-8.12-all.jar

下載對應的規(guī)范約束xml文件,目前主要是有三種Alibaba_check.xml、sun_checks.xml 和google_checks.xml

我們用的完整的規(guī)范如下:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC"-//Puppy Crawl//DTD Check Configuration 1.3//EN""http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<!--文件描述:阿里巴巴代碼規(guī)范完整版-->
<!--創(chuàng)建日期:20230203-->
<!--創(chuàng)建人:QC班長-->
<module name="Checker"><!-- 檢查文件是否以一個空行結束 --><module name="NewlineAtEndOfFile"/><!-- 長度檢查 --><!-- 每行不超過120個字符 --><module name="LineLength"><property name="max" value="120" /></module><!-- 文件長度不超過1500行 --><module name="FileLength"><property name="max" value="1500"/></module><!-- 每個java文件一個語法樹 --><module name="TreeWalker"><!-- import檢查--><!-- 避免使用* -->
<!--        <module name="AvoidStarImport">-->
<!--            <property name="excludes" value="java.io,java.net,java.lang.Math"/>-->
<!--            &lt;!&ndash; 實例;import java.util.*;.&ndash;&gt;-->
<!--            <property name="allowClassImports" value="false"/>-->
<!--            &lt;!&ndash; 實例 ;import static org.junit.Assert.*;&ndash;&gt;-->
<!--            <property name="allowStaticMemberImports" value="true"/>-->
<!--        </module>--><!-- 檢查是否從非法的包中導入了類 --><module name="IllegalImport"/><!-- 檢查是否導入了多余的包 --><module name="RedundantImport"/><!-- 沒用的import檢查,比如:1.沒有被用到2.重復的3.import java.lang的4.import 與該類在同一個package的 --><module name="UnusedImports" /><!-- 注釋檢查 --><!-- 檢查方法和構造函數(shù)的javadoc --><module name="JavadocType"><property name="allowUnknownTags" value="true"/><message key="javadoc.missing" value="類注釋:缺少Javadoc注釋。"/></module><!-- 命名檢查 --><!-- 局部的final變量,包括catch中的參數(shù)的檢查 --><module name="LocalFinalVariableName" /><!-- 局部的非final型的變量,包括catch中的參數(shù)的檢查 --><module name="LocalVariableName" /><!-- 包名的檢查(只允許小寫字母),默認^[a-z]+(\.[a-zA-Z_][a-zA-Z_0-9_]*)*$ --><module name="PackageName"><property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" /><message key="name.invalidPattern" value="包名 ''{0}'' 要符合 ''{1}''格式."/></module><!-- 僅僅是static型的變量(不包括static final型)的檢查 --><module name="StaticVariableName" /><!-- Class或Interface名檢查,默認^[A-Z][a-zA-Z0-9]*$--><module name="TypeName"><property name="severity" value="warning"/><message key="name.invalidPattern" value="名稱 ''{0}'' 要符合 ''{1}''格式."/></module><!-- 非static型變量的檢查 --><module name="MemberName" /><!-- 方法名的檢查 --><module name="MethodName" /><!-- 方法的參數(shù)名 --><module name="ParameterName " /><!-- 常量名的檢查(只允許大寫),默認^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ --><module name="ConstantName" /><!-- 定義檢查 --><!-- 檢查數(shù)組類型定義的樣式 --><module name="ArrayTypeStyle"/><!-- 檢查long型定義是否有大寫的“L” --><module name="UpperEll"/><!-- 方法不超過50行 --><module name="MethodLength"><property name="tokens" value="METHOD_DEF" /><property name="max" value="50" /></module><!-- 方法的參數(shù)個數(shù)不超過5個。 并且不對構造方法進行檢查--><module name="ParameterNumber"><property name="max" value="5" /><property name="ignoreOverriddenMethods" value="true"/><property name="tokens" value="METHOD_DEF" /></module><!-- 空格檢查--><!-- 方法名后跟左圓括號"(" --><module name="MethodParamPad" /><!-- 在類型轉(zhuǎn)換時,不允許左圓括號右邊有空格,也不允許與右圓括號左邊有空格 --><module name="TypecastParenPad" /><!-- 檢查在某個特定關鍵字之后應保留空格 --><module name="NoWhitespaceAfter"/><!-- 檢查在某個特定關鍵字之前應保留空格 --><module name="NoWhitespaceBefore"/><!-- 操作符換行策略檢查 --><module name="OperatorWrap"/><!-- 圓括號空白 --><module name="ParenPad"/><!-- 檢查分隔符是否在空白之后 --><module name="WhitespaceAfter"/><!-- 檢查分隔符周圍是否有空白 --><module name="WhitespaceAround"/><!-- 修飾符檢查 --><!-- 檢查修飾符的順序是否遵照java語言規(guī)范,默認public、protected、private、abstract、static、final、transient、volatile、synchronized、native、strictfp --><module name="ModifierOrder"/><!-- 檢查接口和annotation中是否有多余修飾符,如接口方法不必使用public --><module name="RedundantModifier"/><!-- 代碼塊檢查 --><!-- 檢查是否有嵌套代碼塊 --><module name="AvoidNestedBlocks"/><!-- 檢查是否有空代碼塊 --><module name="EmptyBlock"/><!-- 檢查左大括號位置 --><module name="LeftCurly"/><!-- 檢查代碼塊是否缺失{} --><module name="NeedBraces"/><!-- 檢查右大括號位置 --><module name="RightCurly"/><!-- 代碼檢查 --><!-- 檢查空的代碼段 --><module name="EmptyStatement"/><!-- 檢查在重寫了equals方法后是否重寫了hashCode方法 --><module name="EqualsHashCode"/><!-- 檢查局部變量或參數(shù)是否隱藏了類中的變量 --><module name="HiddenField"><property name="tokens" value="VARIABLE_DEF"/></module><!-- 檢查是否使用工廠方法實例化 --><module name="IllegalInstantiation"/><!-- 檢查子表達式中是否有賦值操作 --><module name="InnerAssignment"/><!-- 檢查是否有"魔術"數(shù)字 --><module name="MagicNumber"><property name="ignoreNumbers" value="0, 1"/><property name="ignoreAnnotation" value="true"/></module><!-- 檢查switch語句是否有default --><module name="MissingSwitchDefault"/><!-- 檢查是否有過度復雜的布爾表達式 --><module name="SimplifyBooleanExpression"/><!-- 檢查是否有過于復雜的布爾返回代碼段 --><module name="SimplifyBooleanReturn"/><!-- 類設計檢查 --><!-- 檢查類是否為擴展設計l --><!-- 檢查只有private構造函數(shù)的類是否聲明為final --><module name="FinalClass"/><!-- 檢查工具類是否有putblic的構造器 --><module name="HideUtilityClassConstructor"/><!-- 檢查接口是否僅定義類型 --><module name="InterfaceIsType"/><!-- 檢查類成員的可見度 檢查類成員的可見性。只有static final 成員是public的除非在本檢查的protectedAllowed和packagedAllowed屬性中進行了設置--><module name="VisibilityModifier"><property name="packageAllowed" value="true"/><property name="protectedAllowed" value="true"/></module><!-- 語法 --><!-- String的比較不能用!= 和 == --><module name="StringLiteralEquality"/><!-- 限制for循環(huán)最多嵌套2層 --><module name="NestedForDepth"><property name="max" value="2"/></module><!-- if最多嵌套3層 --><module name="NestedIfDepth"><property name="max" value="3"/></module><!-- 檢查未被注釋的main方法,排除以Appllication結尾命名的類 --><module name="UncommentedMain"><property name="excludedClasses" value=".*Application$"/></module><!-- 禁止使用System.out.println --><module name="Regexp"><property name="format" value="System\.out\.println"/><property name="illegalPattern" value="true"/></module><!-- return個數(shù) 3個--><module name="ReturnCount"><property name="max" value="3"/></module><!--try catch 異常處理數(shù)量 3--><module name="NestedTryDepth "><property name="max" value="3"/></module><!-- clone方法必須調(diào)用了super.clone() --><module name="SuperClone" /><!-- finalize 必須調(diào)用了super.finalize() --><module name="SuperFinalize" /></module>
</module>

IDEA中的配置


代碼規(guī)范檢測工具配置


打開file --> settings,找到Plugins ,輸入 checkStyle-IDEA,點擊install 安裝

考慮到CheckStyle提供的校驗規(guī)則很嚴格,這里我們用自定義的校驗規(guī)則[alibaba-checks.xml]


打開file --> settings,找到Tools ,可以看到安裝好的 checkstyle,Configuration File-->點擊?添加項目中的配置文件,選擇checks/alibaba-checks.xml文件,輸入名稱,點擊下一步,完成。

?這樣子就好了,不符合規(guī)范的代碼會直接標紅顯示

?參考文獻:


1、java代碼提交到git服務器如何能自動檢查代碼規(guī)范? - SegmentFault 思否

2、git下使用checkstyle構建代碼風格檢查_唯一昵稱真難的博客-CSDN博客_checkstyle+git?

3、符合阿里巴巴代碼規(guī)范的checkstyle檢測文件_KimZing的博客-CSDN博客?

4、pre-commit?

5、使用 pre-commit 實現(xiàn)代碼檢查_清歡守護者的博客-CSDN博客?

http://www.risenshineclean.com/news/39719.html

相關文章:

  • 懷集建設房管部門網(wǎng)站淘寶美工培訓
  • 江西景德鎮(zhèn)建設廳網(wǎng)站seo行業(yè)崗位
  • 江西會昌建設局網(wǎng)站建站軟件可以不通過網(wǎng)絡建設嗎
  • 網(wǎng)站管理系統(tǒng)后臺不能發(fā)布文章了網(wǎng)絡營銷顧問
  • 石家莊網(wǎng)站制作公司最大的中文搜索引擎
  • 網(wǎng)站設計制作系統(tǒng)哪個好搜索引擎優(yōu)化的根本目的
  • 制作網(wǎng)站哪里好廣告投放方案
  • 網(wǎng)站 切圖中國疫情最新情況
  • 工業(yè)設計和產(chǎn)品設計哪個好seo關鍵詞優(yōu)化軟件合作
  • 如何查公司的工商注冊信息網(wǎng)站推廣與優(yōu)化方案
  • 深圳企業(yè)網(wǎng)站制作哪家好百度搜索引擎收錄
  • 做網(wǎng)站人太原網(wǎng)站建設制作
  • 網(wǎng)站哪個公司好南寧seo外包要求
  • vue做網(wǎng)站的實例網(wǎng)絡培訓心得
  • 北關網(wǎng)站制作百度推廣官方
  • 打字做任務賺錢的網(wǎng)站什么都不懂能去干運營嗎
  • 模板網(wǎng)站和定制網(wǎng)站影響排名seo推廣代理
  • 有什么網(wǎng)站可以做初中試題怎么做app推廣和宣傳
  • 做時時彩網(wǎng)站百度搜索關鍵詞排名優(yōu)化技術
  • 精品課程網(wǎng)站建設方案安卓aso優(yōu)化工具
  • 有做貨 物的網(wǎng)站嗎今天新聞頭條新聞
  • 建設什么網(wǎng)站新品推廣活動方案
  • 國內(nèi)做的好的電商網(wǎng)站有哪些方面百度在線使用網(wǎng)頁版
  • 自己做的網(wǎng)站可以用于百度推廣嗎線上營銷推廣方案有哪些
  • nginx wordpress ssl網(wǎng)站排名優(yōu)化外包公司
  • 怎么做監(jiān)測網(wǎng)站的瀏覽量app推廣地推接單網(wǎng)
  • 溫州網(wǎng)站建設培訓seoul是什么品牌
  • 廣東網(wǎng)站開發(fā)搭建搜索推廣競價托管哪家好
  • wordpress指定分類名稱知乎關鍵詞排名優(yōu)化
  • 湖北做網(wǎng)站的一句話宣傳自己的產(chǎn)品