我在“程序”文件夹中有大量单独的,不相关的Java程序,我真的希望能够为每个程序自动计算技术债务分数。我知道SonarQube可以允许你用Sonar-Runner做这个(有点),但是我真的想要一种动态的方法,所以我可以让脚本分析并写出所有程序的技术债务分数将“Programs”文件夹改成csv。
如果它可以为我做这件事,我非常愿意并乐意尝试任何其他类型的技术债务软件(或质量问题)。我真的很感激任何意见,或者想一想这是否可行?
答案 0 :(得分:4)
是的,你可以,Sonar是一个代码分析工具,并且插件甚至可以估算工时或美元的技术债务。真的很容易设置和运行,你只需下载它,解压缩并启动(随内部数据库一起提供,因此不需要额外的配置依赖)。然后,如果您使用maven,则将其添加到您的pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.0</version>
</plugin>
并运行:
maven sonar:sonar
Sonar将向您展示有关您的代码的各种有用信息,包括技术债务。
------更新1 ------
如果你有多个项目(假设他们是maven),你可以让他们成为一个父项目的所有孩子并在父项目上运行mvn sonar:sonar
,它将为你分析所有孩子。 Here is an example of multiple projects
答案 1 :(得分:0)
Eclipse Metrics插件可以让您接近所需的内容。它将通过报告不同类型的复杂性(耦合,圈复杂度,内聚力,方法长度等)为您的项目提供健康检查。
从他们的页面:
此Eclipse插件在构建周期期间计算代码的各种度量标准,并通过“问题”视图向您发出每个度量标准的“范围违规”警告。这使您可以持续了解代码库的运行状况。您还可以将指标导出为HTML以供公开显示,或导出为CSV或XML格式以供进一步分析。可以从Eclipse中或使用Ant任务执行此导出。
答案 2 :(得分:0)
这些答案都很棒,但不完全是我想要的。我能够创建自己的工作:
当我创建java项目时,我有一个java类,它自动将sonar-properties.properties文件写入每个项目。
然后我启动声纳服务器(通过命令提示符)
然后我编写了一个脚本,通过目录查找sonar-properties.properties文件。如果找到一个,它会启动声纳 - 跑步者。
注意,属性文件有一个与项目对应的项目键(因此我尝试分析的每个项目都有自己的项目键) - 然后我可以简单地转到localhost并查看每个属性的链接我创建的文件。