2013-11-24 61 views
10

我在“程序”文件夹中有大量个人,无关的Java程序,我真的很想为每个程序自动计算技术债务评分。据我所知,SonarQube可以允许你用Sonar-Runner做这个(种类),但是我真的很想动态地做到这一点,所以我可以有一个脚本分析和编写“程序”中所有程序的技术债务分数,文件夹放入csv。我可以动态计算技术债务吗?

如果能为我这样做,我非常乐意并乐于尝试任何其他类型的技术债务软件(或质量)。我真的很感激任何意见,或者想知道这是否可能?

+0

他们都使用相同的项目结构吗?也许他们都使用Maven及其相关的约定?如果没有,几乎不可能有一个工具来动态检测源代码文件夹,单元测试文件夹,要使用哪个Java编译器版本等。 – NickDK

+0

+1对于一个非常有趣的问题。然而,我不知道自动化TD估算的误差下限是否如此之高,以至于有意义的结果难以捉摸 –

回答

0

Eclipse Metrics插件可能会让您接近您正在寻找的内容。它会通过报告不同类型的复杂性(耦合,圈复杂度,内聚力,方法长度等),为您的项目提供健康检查。

从他们的网页:

这个Eclipse插件在构建周期计算你的代码的各种指标,并警告你,通过问题来看,“范围违规”各个指标的。这使您可以持续了解代码库的健康状况。您也可以将指标导出为HTML以供公开展示,或者导出为CSV或XML格式以供进一步分析。该导出可以在Eclipse中执行或使用Ant任务执行。

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

4

可以呀,Sonar是一个代码分析工具,并具有甚至可以估算工时或美元技术债务插件。真正简单的设置和运行,你只需下载它,解压并启动(随附一个内部数据库,因此不需要额外的配置依赖)。然后,如果你使用Maven的时候,你添加到您的pom.xml:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sonar-maven-plugin</artifactId> 
    <version>2.0</version> 
</plugin> 

并运行:然后

maven sonar:sonar 

声纳会告诉你各种有关您的代码有用的信息,包括技术债务。

------更新1 ------

如果你有多个项目(假设他们是行家),你可以让他们一个父项目的所有孩子和家长运行mvn sonar:sonar ,它会为你分析所有的孩子。 Here is an example of multiple projects

0

这些答案都很棒,但不是我正在寻找的。我能够创建自己的解决方法:

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

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

  3. 我写的,然后通过寻找sonar-properties.properties文件的目录演练脚本。如果找到一个,它会发射声纳运动员。

注意,属性文件具有对应于该项目一期工程的关键(所以我试图分析每个项目都有它自己的项目的关键) - 所以后来我可以简单地去为localhost和看链接为我创建的每个属性文件。

相关问题