此Java代碼庫的工具將幫助您首先確定應該重構的內容:
它掃描您的git存儲庫並運行:
循環分析目前基於類字段類型和方法簽名類型(更多!)進行。
報告中生成的圖看起來與此相似: 
需要更改Java 11以解決JGIT中解決脆弱性CVE-2023-4759
支持Java 21代碼庫分析!
從項目的根部運行以下命令(不需要構建源代碼):
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport在target/site/refactor-first-report.html上查看報告
這將生成簡化的HTML報告(無圖形或圖像)作為GitHub動作步驟的輸出
mvn -B clean test
org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:simpleHtmlReport
&& echo " $( cat target/site/refactor-first-report.html ) " >> $GITHUB_STEP_SUMMARY在“構建”部分中添加以下內容。 Showdetails將在生成表中顯示上帝的階級指標和排名。
< build >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
<!-- optional -->
< configuration >
< showDetails >false</ showDetails >
</ configuration >
</ plugin >
...
</ plugins >
</ build >在報告部分中將以下內容添加到您的項目中。
運行mvn site時,RefactorFirst報告將顯示在網站報告中
< reporting >
< plugins >
...
< plugin >
< groupId >org.hjug.refactorfirst.plugin</ groupId >
< artifactId >refactor-first-maven-plugin</ artifactId >
< version >0.6.1</ version >
</ plugin >
...
</ plugins >
</ reporting >如果您看到類似的錯誤
Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.3:site failed: A required class was missing while executing org.apache.maven.plugins:maven-site-plugin:3.3:site: org/apache/maven/doxia/siterenderer/DocumentContent
您需要將以下內容添加到您的pom.xml:
< build >
< plugins >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-site-plugin</ artifactId >
< version >3.12.1</ version >
</ plugin >
< plugin >
< groupId >org.apache.maven.plugins</ groupId >
< artifactId >maven-project-info-reports-plugin</ artifactId >
< version >3.4.5</ version >
</ plugin >
</ plugins >
</ build >我想創建一個Gradle插件,並(可能)將來支持非規定項目,但是與此同時,您可以在同一目錄中與您的.git目錄創建一個虛擬文件:
< project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns : xsi = " http://www.w3.org/2001/XMLSchema-instance "
xsi : schemaLocation = " http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd " >
< modelVersion >4.0.0</ modelVersion >
< groupId >com.mycompany.app</ groupId >
< artifactId >my-app</ artifactId >
< version >1.0-SNAPSHOT</ version >
</ project >然後(假設安裝了Maven)運行
mvn org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.6.1:htmlReport在target/site/refactor-first-report.html上查看報告
插件完成執行後(大/舊代碼庫可能需要一段時間),請在項目的根部打開文件目標/站點/rebactor-first-report.html 。它將包含類似於上面的圖,並按照推薦的順序列出上帝的班級。圖表左上角的課程最容易重構,同時對團隊生產力產生了最大的積極影響。
如果檢測到高度耦合的類,將生成圖形和表列出高度耦合類的圖。
與您的產品所有者合作,優先考慮已確定的技術債務。它可能有助於將其解釋為隱藏的負值,這正在減緩團隊的核能。
如果您擁有Intellij Ultimate,則可以安裝方法參考圖插件,以幫助您確定如何重構所識別的上帝類和高度耦合的類。
該插件將在具有典型的Maven項目佈局的單個模塊和多模塊Maven項目上使用。
該工具基於該論文,將Nico Zazworka,Carolyn Seaman和Forrest Shull的設計債務投資機會優先考慮。基於論文的演示文稿可在https://resources.sei.cmu.edu/asset_files/presentation/2011_017_001_516911.pdf獲得。
還有很多要做的事情。您的反饋和協作將以功能請求,錯誤提交和PR的形式表示感謝。
如果您覺得此插件有用,請在此存儲庫中標記,並與您的朋友與同事以及社交媒體分享。
如果您是版本0.1.0或0.1.1版本的用戶,則可能會注意到插件發現的上帝類列表已更改。這是由於PMD的變化。