亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sonarqube中怎么添加阿里java開發規范

發布時間:2021-06-15 13:39:34 來源:億速云 閱讀:504 作者:Leah 欄目:大數據

這篇文章給大家介紹sonarqube中怎么添加阿里java開發規范,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

 

  1. 拉取sonar-pmd源碼,切換到3.2.1。修改pom文件添加p3c-pmd依賴:

    <dependency>
        <groupId>com.alibaba.p3c</groupId>
        <artifactId>p3c-pmd</artifactId>
        <version>2.0.0</version>
    </dependency>


     

  2.  開始配置阿里Java規范,此處演示配置規則:單個方法的總行數不超過80行,規則名為MethodTooLongRule,此規則名來源于p3c項目p3c\p3c-pmd\src\main\resources\rulesets\java\ali-other.xml文件中配置的規則名。

  3.  首先在sonar-pmd項目sonar-pmd-plugin\src\main\resources\org\sonar\l10n\pmd\rules目錄下新建pmd-p3c目錄用于存放規則說明html,然后新建MethodTooLongRule.html, 添加內容如下:

    <p>單個方法的總行數不超過80行。</p>
    <p>說明:包括方法簽名、結束右大括號、方法內代碼、注釋、空行、回車及任何不可見字符的總行數不超過80行。</p>


     

  4. 修改sonar-pmd項目sonar-pmd-plugin\src\main\resources\org\sonar\l10n\pmd.properties配置文件,添加MethodTooLongRule規則名如下:

    rule.pmd.MethodTooLongRule.name=[p3c]The total number of lines for a method should not be more than 80.


     

  5. 在sonar-pmd項目sonar-pmd-plugin\src\main\resources\org\sonar\plugins\pmd目錄下新建rules-p3c.xml規則文件并添加MethodTooLongRule規則配置如下:

    <rule key="MethodTooLongRule">
        <priority>MAJOR</priority>
        <configKey><![CDATA[rulesets/java/ali-other.xml/MethodTooLongRule]]></configKey>
        <type>CODE_SMELL</type>
        <tag>other</tag>
    </rule>


     

  6. 修改sonar-pmd項目sonar-pmd-plugin\src\main\resources\com\sonar\sqale\pmd-model.xml配置文件,在文件末尾</sqale>標簽前添加如下代碼:

    <chc>
        <key>P3C-PMD</key>
        <name>p3c-pmd</name>
        <chc>
            <key>P3C_PMD</key>
            <name>p3c_pmd</name>
            <!--在此處添加rule的chc-->
           <chc>
            <rule-repo>pmd</rule-repo>
            <rule-key>MethodTooLongRule</rule-key>
            <prop>
              <key>remediationFunction</key>
              <txt>CONSTANT_ISSUE</txt>
            </prop>
            <prop>
              <!--此處為該技術債務所需要的時間,單位使用min,此處設為2min-->
              <key>offset</key>
              <val>2</val>
              <txt>min</txt>
            </prop>
          </chc>
        </chc>
    </chc>


     

  7. 添加p3c規則的引入,修改PmdRulesDefinition.java文件,在define方法內添加p3c規則庫

        @Override
        public void define(Context context) {
            NewRepository repository = context
                    .createRepository(PmdConstants.REPOSITORY_KEY, PmdConstants.LANGUAGE_KEY)
                    .setName(PmdConstants.REPOSITORY_NAME);
    
            extractRulesData(repository, "/org/sonar/plugins/pmd/rules.xml", "/org/sonar/l10n/pmd/rules/pmd");
            // 新增
            extractRulesData(repository, "/org/sonar/plugins/pmd/rules-p3c.xml", "/org/sonar/l10n/pmd/rules/pmd-p3c");
            repository.done();
        }


     

  8. 使用mvn package -Dmaven.test.skip=true打包即可,如果規則的描述文件html中包含中文內容,那么注意文件編碼需要是utf-8。

  9. 把sonar-pmd-plugin\target目錄下的sonar-pmd-plugin-3.2.1.jar放到 sonarqube服務/extensions/plugins目錄下重啟服務。

  10. 登陸sonarqube在質量配置頁面點擊【創建】按鈕新建p3c質量,語言選Java,點擊【創建】后跳轉到該質量配置的詳情界面,然后點擊【更多激活規則】,在搜索規則中搜索p3c,然后點擊【批量修改】,點擊【應用】到剛新建的質量配置, 然后回到【質量配置】頁面,將該質量配置Set as Default【設為默認】,然后就可以分析項目質量了。

    問題:

     1. 分析失敗提示缺失類com/google/gson/Gson,在sonar-pmd項目pom文件添加如下依賴:

<dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.5</version>
</dependency>

    其他:

    1. 規則說明html內容來源于p3c\p3c-pmd\src\main\resources下的message.xml文件內配置的msg和desc內容,添加示例代碼使用<pre>標簽,如果代碼內用泛型或代碼為xml配置請使用<xmp>標簽,示例如下:

<h3>Negative example :</h3><pre>  <xmp>   List<String> list = new ArrayList<String>();
   list.add("22");
   //warn
   List<String> test = (ArrayList<String>) list.subList(0, 1);   </xmp></pre>

   2.規則名來源于p3c\p3c-pmd\src\main\resources下的message_en.xml的配置的規則的msg內容,但存在部分msg過長導致sonar重啟失敗,請酌情刪減。

   3. rules-p3c.xml添加規則類型type暫時用了CODE_SMELL和BUG

   4. rules-p3c.xml添加規則內的configKey配置要與p3c\p3c-pmd\src\main\resources\rulesets\java目錄下的規則配置文件文件名和規則名一一對應。

關于sonarqube中怎么添加阿里java開發規范就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宜宾市| 瓦房店市| 岫岩| 甘孜| 旬邑县| 思南县| 花莲县| 大港区| 包头市| 陇南市| 淮阳县| 农安县| 蓝山县| 定州市| 达州市| 沙湾县| 沾化县| 屯留县| 永新县| 丰都县| 富平县| 西贡区| 兴国县| 九江市| 洞口县| 广水市| 义乌市| 芮城县| 米林县| 三台县| 唐河县| 额济纳旗| 崇礼县| 略阳县| 南雄市| 繁昌县| 方正县| 合川市| 阳谷县| 卓尼县| 文登市|