Eclipseはコード行を数えます


107

私はMetricsプラグインを試しましたが、それは素晴らしいことですが、上司が探しているものではありません。それは1つだけの行を1 }行として数えますが、彼はそれを「行ではなく、そのスタイルの選択」として数えたくありません。また、提供されたメトリックに関する何らかのレポートを生成する必要があります。これに適したツールはありますか?


1
副次的な質問:これは、ソフトウェア開発者がどの程度うまく働いているかを示す指標として使用されますか?もしそうなら、文字/空白以外の数はより良いかもしれません。それでも実際には任意のメトリックのように見えます...友人が言ったように:「一般に、問題を解決するためのコードの行数を増やすことは、同じ問題を解決するコードの行数を減らすよりも良い(または悪い)わけではありません」
Sancarn

回答:


93

Eclipse Metrics Pluginをインストールします。HTMLレポートを作成するには(オプションのXMLおよびCSVを使用)right-click a project -> Export -> Other -> Metrics

必要に応じて、空白行およびコメントのみの行を無視するか、Javadocを除外して、コード行のメトリックを調整できます。これを行うには、のタブを確認してくださいPreferences -> Metrics -> LoC

それでおしまい。中括弧を除外する特別なオプションはありません{}

プラグインは、ステートメント数と呼ばれるLoCの代替メトリックを提供します。これは著者がそれについて言わなければならないことです:

このメトリックは、メソッド内のステートメントの数を表します。後者はさまざまなフォーマット規則に関して脆弱であるため、コードの行よりも堅牢な方法だと思います。

編集:

質問を明確にした後、コンパイラの警告やエラーなどのリアルタイムのメトリック違反のビューが必要であることを理解しました。上司のレポートを作成するには、レポート機能も必要です。上記で説明したプラグインは、メトリックを表示したいときにメトリックをエクスポートする必要があるため、レポート用です。


まさに私が探していたものと素晴らしいエクスポート機能。
george_h

1
このプラグインの現在のバージョン(3.14.1)は、Eclipse Luna(4.4)では動作しないようです。驚いたことに、Sourceforgeの古いMetricsプラグインはまだ機能します...
ejain 2014年

多くの人々は、それがもはや機能していないと報告していますが、誰もSourceForgeにバグを報告していません...
Thomas Weller

6
うん。の下right click a project -> Exportにオプションが表示されEclipse Metrics 3.12.0ません。Eclipseマーケットプレイスから直接プラグインをインストールしました-バージョンは- です。だれでも手伝ってください。ありがとう!
OverrockSTAR


263

常に「ブルートフォース」が存在します。

  1. 検索->ファイル

  2. 「含むテキスト」に次のように入力します-> ^.*$。次に、[正規表現]チェックボックスをオンにします

  3. 「ファイル名のパターン」に次のように入力します-> *.java

  4. 「検索」をクリック

  5. 「検索」タブで一致数を確認してください。


11
これはまさに私が探していたものでした。それはブラケットや派手なものを除外しませんが、プラグインなしで、私が探していた答えを日食で提供します。ありがとう!
ルーク

24
使用することもでき\n[\s]*、空行も無視されます
アスカロニア語

3
別のプラグインを必要としない非常に素晴らしいソリューション!+1
ステファン

2
これは最新の(ネオン)日食で機能しますが、メトリックプラグインは機能しません
Anatoly Yakimchuk

2
@omerioコメントも入力する必要があり、ソースコードの一部として必要です。それらを数えないことは、それらが重要ではないか、単に盲目的なテキストであることを誘発します-これは重大な間違いです。
Axel Amthor 16

23

OSXまたは* NIXの場合

* .javaファイルからJavaコードの実際のすべての行を取得する

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

空の行とコメントを含む* .javaファイルからすべての行を取得します。

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

ファイルごとの情報を取得します。これにより、[ファイルへのパス+ "、" +行数]が得られます

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

OSXで最初のコマンドを実行すると、grep:無効な文字範囲0
omerio

これは私が見つけるために働いています。-name "* .java" | xargs猫| grep '[alnum]' | wc -l
omerio 2016年

2
する必要がありますfind . -name "*.java" | xargs cat | grep "[a-zA-Z0-9{}]" | wc -l
warrior107

8

別の方法では、たとえばLocMetricsなどの別のlocユーティリティを使用します。
また、他の多くのlocツールもリストされています。Eclipseとの統合は常に存在するわけではありませんが(Metrics2の場合と同じです。これは、それがMetricsよりも新しいバージョンであるため、チェックアウトできます)、少なくともこれらのツールは論理行(推計によって計算されます)終端セミコロンと終端中括弧)。
また、Eclipseメトリックを使用して、期待するものにより適合していることを確認することもできます。


7

別のツールはGoogle Analytixです。これにより、エラーが発生した場合にプロジェクトをビルドできない場合でもメトリックを実行できます


このサイトは古いバージョンのeclipseにのみ対応していると述べていますが、Lunaでは問題なく機能します。これをありがとう。
CamHart 2015

7

Eclipseでコード行を数える1つの可能な方法:

[検索/ファイル...]メニューを使用して、[ファイル検索]タブを選択し、[含まれるテキスト]に\ n [\ s] *を指定し(空の行はカウントされません)、[正規表現]を選択します。

ハットヒント:www.monblocnotes.com/node/2030


うわー、それは超天才です。それは...限り、あなたは数で支払っていないとして、空白行をカウントしていない持っている素敵な
JohnnyB

1

ソースコードの行を数えることができるEclipseプラグインを作成しました。Kotlin、Java、Java Script、JSP、XML、C / C ++、C#、および他の多くのファイルタイプをサポートしています。

ぜひご覧ください。フィードバックをいただければ幸いです!

git-hubリポジトリはこちら


0

ProjectCodeMeterは、LLOC(論理的なコード行)をユーザーが記述したとおりにカウントします(有効な行のみ)。外部コードメトリックツールとしてEclipseに統合されますが、リアルタイムではありませんが、レポートを生成します。実際には、複雑さ、算術的な複雑さ、ハードコードされた文字列、数値定数などの多くのソースコードメトリックをカウントします。開発時間も数時間で見積もります。


0

静的分析については、SonarQubeを使用して推奨しています。SonarQube は、さまざまな言語必要となる可能性のあるほぼすべてのメトリックを実行し、基本バージョンでは無料です(使用する言語の種類を分析するには料金がかかります)頭に銃を使ってコードを入力するだけです)。

ソースコードリポジトリから分析を実行するWebアプリとしてインストールする必要がありますが、Eclipseプラグインも含まれています

一回限りのプロジェクトのコード行数を知りたいだけの場合は、やりすぎです。時間の経過とともにメトリックを追跡したり、プロジェクト間で比較したり、しきい値を超えたときに警告を発したりする場合などは、すばらしい方法です。

開示:SonarSourceとは金銭的な関係はありません。


0

最初に行うことは、「コード行」(LOC)の定義を決定することです。あなたの質問の両方で

}を1つだけ持つ行を行としてカウントし、彼はそれを「行ではなく、スタイルの選択」としてカウントしたくない

と答えで、例えば、

必要に応じて、空白行およびコメントのみの行を無視するか、Javadocを除外することにより、コード行のメトリックを調整できます。

何がコード行を構成するかについて、人々はさまざまな意見を持っていることがわかります。特に、人々は、コードの行数とステートメントの数のどちらが本当に欲しいのかについて不正確であることがよくあります。たとえば、次の非常に長い行がステートメントで埋められている場合、何を報告しますか?1つのLOCまたは何百ものステートメント?

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

そして、誰かがあなたがLOCを何と呼んでいるのかを尋ねられたら、たとえそれが単に「LOCの私の定義はMetrics2の定義である」としても、答えられることを確認してください。一般に、最も一般的にフォーマットされたコード(私の例とは異なります)の場合、人気のあるツールはかなり類似した数値を提供するため、それらを一貫して使用する限り、Metrics2、SonarQubeなどはすべて問題ありません。つまり、1つのツールを使用して一部のコードのLOCをカウントせず、その値を別のツールで測定されたそのコードの新しいバージョンと比較しないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.