【问题标题】:Eclipse count lines of code [closed]Eclipse计数代码行[关闭]
【发布时间】:2011-08-03 09:16:27
【问题描述】:

我尝试了Metrics plugin,虽然它很好,但它不是我老板想要的。它将只有一个 } 的行算作一行,他不希望这算作“它不是一行,它是一种风格选择”。我还需要生成某种形式的关于所提供指标的报告。有什么好的工具吗?

【问题讨论】:

  • 附带问题:这是否可以用作衡量软件开发人员工作情况的指标?如果是这样,字符/非空格计数可能会更好。即使它看起来仍然是一个非常随意的指标......正如一位朋友所说:“一般来说,解决问题的更多代码行并不比解决同一问题的更少代码行更好(或更差)”

标签: eclipse metrics line-count


【解决方案1】:

总是有“蛮力”:

  1. 搜索->文件

  2. 在“包含文本”中键入以下内容 -> ^.*$。然后勾选“正则表达式”复选框

  3. 在“文件名模式”中键入以下内容 -> *.java

  4. 点击“搜索”

  5. 检查“搜索”选项卡中的匹配数。

【讨论】:

  • 这正是我想要的。它不排除括号或任何花哨的东西,但它给出了我正在寻找的答案,在 Eclipse 中,没有插件。谢谢!
  • 你也可以使用\n[\s]*,它也会忽略空行
  • 非常好的解决方案,无需其他插件! +1
  • 这适用于最新的(霓虹灯)eclipse,但指标插件不
  • @omerio cmets 也必须输入,并且是任何源代码的必要部分。不计算那些会导致它们不重要或只是盲文 - 这是一个严重的错误。
【解决方案2】:

安装Eclipse Metrics Plugin。创建 HTML 报告(带有可选的 XML 和 CSV)right-click a project -> Export -> Other -> Metrics

您可以通过忽略空白行和仅注释行来调整代码行指标,或者根据需要排除 Javadoc。为此,请检查Preferences -> Metrics -> LoC 的选项卡。

就是这样。没有排除大括号{}的特殊选项。

该插件为 LoC 提供了一个替代指标,称为 Number of Statements。这是作者不得不说的:

此指标表示方法中的语句数。我认为它比代码行更可靠,因为后者在不同的格式约定方面很脆弱。

编辑:

在您澄清问题后,我了解到您需要查看实时指标违规情况,例如编译器警告或错误。您还需要一个报告功能来为您的老板创建报告。我上面描述的插件是用于报告的,因为您必须在想要查看它们时导出指标。

【讨论】:

  • 正是我想要的和不错的导出功能。
  • 这个插件的当前版本 (3.14.1) 似乎不适用于 Eclipse Luna (4.4)。令人惊讶的是,Sourceforge 的古老 Metrics 插件仍然有效……
  • 许多人报告说它不再工作了,但没有人在 SourceForge 提交错误...
  • 是的。我在right click a project -> Export 下看不到任何选项,我直接从 Eclipse 市场安装了插件-版本是-Eclipse Metrics 3.12.0,任何人都可以帮助我。谢谢!
【解决方案3】:

如果在 OSX 或 *NIX 上使用

从 *.java 文件中获取所有实际的 java 代码行

find . -name "*.java" -exec grep "[a-zA-Z0-9{}]" {} \; | wc -l

从 *.java 文件中获取所有行,包括空行和 cmets

find . -name "*.java" -exec cat | wc -l

获取每个文件的信息,这将为您提供 [ 文件路径 + "," + 行数 ]

find . -name "*.java" -exec wc -l {} \;

【讨论】:

  • 在 OSX 上运行第一个命令我得到: grep: invalid character range 0
  • 这对我有用 find 。 -名称“*.java”| xargs 猫 | grep '[alnum]' | wc -l
  • 应该是find . -name "*.java" | xargs cat | grep "[a-zA-Z0-9{}]" | wc -l
【解决方案4】:

在 Eclipse 中计算代码行数的一种可能方法:

使用搜索/文件...菜单,选择文件搜索选项卡,指定 \n[\s]* 作为包含文本(这不会计算空行),然后勾选正则表达式。

帽子提示:www.monblocnotes.com/node/2030

【讨论】:

  • 哇,真是超级天才。很高兴它不计算空行,只要你没有按数字支付......
  • 同时选择“*.java”(或您的扩展名)以专注于代码文件
【解决方案5】:

另一种方法是使用另一个 loc 实用程序,例如 LocMetrics
它还列出了许多other loc tools。 与 Eclipse 的集成并不总是存在(就像与 Metrics2 一样,您可以查看它,因为它是比Metrics 更新的版本),但至少这些工具可以根据逻辑行(通过将终端分号和终端花括号相加来计算)进行推理。
您也可以通过eclipse-metrics 来检查是否更适合您的期望。

【讨论】:

    【解决方案6】:

    另一个工具是Google Analytix,即使在出现错误时无法构建项目,它也可以让您运行指标

    【讨论】:

    • 虽然网站说它只适用于旧版本的 eclipse,但对我来说它在 Luna 上运行得很好。谢谢你。
    【解决方案7】:

    我创建了一个 Eclipse 插件,它可以计算源代码的行数。 它支持 Kotlin、Java、Java Script、JSP、XML、C/C++、C# 和许多其他文件类型。

    请看一下。 任何反馈将不胜感激!

    the git-hub repository is here

    【讨论】:

      【解决方案8】:

      ProjectCodeMeter 完全按照您的描述计算 LLOC(逻辑代码行)(仅有效行)。它集成到eclipse as external code metrics tool,虽然它不是实时的,但它会生成一个报告。实际上它计算了许多源代码指标,例如复杂性、算术复杂性、硬编码字符串、数字常量.. 甚至以小时为单位估计开发时间。

      【讨论】:

        【解决方案9】:

        对于静态分析,我使用并推荐了 SonarQube,它在 a wide range of languages 上运行 just about all the metrics you could possibly want,并且在基本版本中是免费的(您必须付费才能分析我只会使用枪对着我的头)。

        您必须将它安装为一个网络应用程序,在您的源代码存储库中运行分析,但它也有一个Eclipse plugin

        如果您只是想一次性知道项目中有多少行代码,那就太过分了。如果您想通过时间跟踪指标、跨项目比较、超过阈值时发出警告等,这太棒了。

        披露:我与 SonarSource 没有财务关系。

        【讨论】:

          【解决方案10】:

          首先要做的是确定您对“代码行”(LOC) 的定义。在你的两个问题中

          它将只有一个 } 的行算作一行,他不希望这样 算作“它不是一条线,它是一种风格选择”

          在答案中,例如,

          您可以通过忽略空白和仅注释行或排除 Javadoc 来调整代码行指标

          你可以看出人们对于一行代码的构成有不同的看法。尤其是,人们常常不清楚他们是否真的想要代码行数或语句数。例如,如果您有以下非常长的一行充满语句,您要报告什么,1 LOC 或数百个语句?

          { a = 1; b = 2; if (a==c) b++; /* etc. for another 1000 characters */ }
          

          当有人问你叫什么 LOC 时,请确保你能回答,即使它只是“我对 LOC 的定义是 Metrics2 的定义”。一般来说,对于最常用格式的代码(与我的示例不同),流行的工具会给出非常相似的数字,所以 Metrics2、SonarQube 等应该都可以,只要您始终如一地使用它们。换句话说,不要使用一种工具计算某些代码的 LOC,并将该值与使用不同工具测量的该代码的更高版本进行比较。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-04-06
            • 1970-01-01
            • 1970-01-01
            • 2011-08-14
            • 2014-01-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多