我可以动态计算技术债务吗?

时间:2013-11-24 22:40:51

标签: eclipse sonarqube sonar-runner technical-debt design-debt

我在“程序”文件夹中有大量单独的,不相关的Java程序,我真的希望能够为每个程序自动计算技术债务分数。我知道SonarQube可以允许你用Sonar-Runner做这个(有点),但是我真的想要一种动态的方法,所以我可以让脚本分析并写出所有程序的技术债务分数将“Programs”文件夹改成csv。

如果它可以为我做这件事,我非常愿意并乐意尝试任何其他类型的技术债务软件(或质量问题)。我真的很感激任何意见,或者想一想这是否可行?

3 个答案:

答案 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任务执行此导出。

http://eclipse-metrics.sourceforge.net/

答案 2 :(得分:0)

这些答案都很棒,但不完全是我想要的。我能够创建自己的工作:

  1. 当我创建java项目时,我有一个java类,它自动将sonar-properties.properties文件写入每个项目。

  2. 然后我启动声纳服务器(通过命令提示符)

  3. 然后我编写了一个脚本,通过目录查找sonar-properties.properties文件。如果找到一个,它会启动声纳 - 跑步者。

  4. 注意,属性文件有一个与项目对应的项目键(因此我尝试分析的每个项目都有自己的项目键) - 然后我可以简单地转到localhost并查看每个属性的链接我创建的文件。