您好,登錄后才能下訂單哦!
這篇文章主要介紹PMD 6.36.0的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
PMD 是一個代碼分析器,能夠幫助發(fā)現(xiàn)常見的編程問題,比如未使用的變量、空的 catch 塊、不必要的對象創(chuàng)建等等。最初僅支持 Java 代碼,目前還可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。
PMD 6.36.0 正式發(fā)布,本次更新內容如下:
改進的增量分析
長期以來,增量分析一直幫助我們的用戶獲得了更快的分析結果,然而,它的實現(xiàn)在檢測運行時和類型解析類路徑的變化時往往過于謹慎,產(chǎn)生不必要的緩存失效。我們現(xiàn)在已經(jīng)改進了啟發(fā)式方法,以消除一些錯誤的無效,并略微加快了緩存的的使用。
PMD 現(xiàn)在將忽略:
類路徑中的非類文件和被引用的 jar/zip 文件;
更改 jar / zip 中文件條目的順序;
jar / zip 中文件元數(shù)據(jù)的更改;
新規(guī)則
新的 Apex 規(guī)則[AvoidDebugStatements](<https://pmd.github.io/pmd-6.36.0/pmd_rules_apex_performance.html#avoiddebugstatements>)System.debug 查找 System.debug 調用的用法。即使沒有捕獲調試日志,調試語句也會導致更長的事務并消耗 Apex CPU 時間。
你可以像這樣嘗試這個規(guī)則:
<rule ref="category/apex/performance.xml/AvoidDebugStatements" />
新的 Apex 規(guī)則[InaccessibleAuraEnabledGetter](<https://pmd.github.io/pmd-6.36.0/pmd_rules_apex_errorprone.html#inaccessibleauraenabledgetter>)AuraEnabled 檢查 AuraEnabled 獲取器是公共的還是全局的。
你可以像這樣嘗試這個規(guī)則:
<rule ref="category/apex/errorprone.xml/InaccessibleAuraEnabledGetter" />
重命名的規(guī)則
Java 規(guī)則 BadComparison 已被重命名為 ComparisonWithNaN,以更好地反映該規(guī)則實際檢測的內容。
修正的問題
(1)apex
避免調試語句,因為它影響性能;
新增規(guī)則,以檢測不可訪問的 AuraEnabled 獲取器;
CognitiveComplexity - "else if" 的增量不正確;
(2)core
錯誤加載樣式表 cpdhtml.xslt;
在 SARIF 報告中添加 fullDescription 和標簽;
(3)java-bestpractices
#3340: [java] NullPointerException applying rule GuardLogStatement
(4)java-bestpractices
GuardLogStatement:編譯時常量參數(shù)誤報
UnusedAssignment 在增量 expr 中使用時報告未使用的變量;
UnusedAssignment 在報告未使用的變量時誤報;
LiteralsFirstInComparisons 兩個常量的誤報;
JUnitTestsShouldIncludeAssert 應該支持 Junit 5;
NullPointerException 應用規(guī)則 GuardLogStatement;
(5)java-代碼樣式
更新 UnnecessaryImport 以識別 javadoc @exception 標簽中導入類型的用法;
以上是“PMD 6.36.0的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。