此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的变化。