私はMetricsプラグインを試しましたが、それは素晴らしいことですが、上司が探しているものではありません。それは1つだけの行を1 }
行として数えますが、彼はそれを「行ではなく、そのスタイルの選択」として数えたくありません。また、提供されたメトリックに関する何らかのレポートを生成する必要があります。これに適したツールはありますか?
私はMetricsプラグインを試しましたが、それは素晴らしいことですが、上司が探しているものではありません。それは1つだけの行を1 }
行として数えますが、彼はそれを「行ではなく、そのスタイルの選択」として数えたくありません。また、提供されたメトリックに関する何らかのレポートを生成する必要があります。これに適したツールはありますか?
回答:
Eclipse Metrics Pluginをインストールします。HTMLレポートを作成するには(オプションのXMLおよびCSVを使用)right-click a project -> Export -> Other -> Metrics
。
必要に応じて、空白行およびコメントのみの行を無視するか、Javadocを除外して、コード行のメトリックを調整できます。これを行うには、のタブを確認してくださいPreferences -> Metrics -> LoC
。
それでおしまい。中括弧を除外する特別なオプションはありません{}
。
プラグインは、ステートメント数と呼ばれるLoCの代替メトリックを提供します。これは著者がそれについて言わなければならないことです:
このメトリックは、メソッド内のステートメントの数を表します。後者はさまざまなフォーマット規則に関して脆弱であるため、コードの行よりも堅牢な方法だと思います。
編集:
質問を明確にした後、コンパイラの警告やエラーなどのリアルタイムのメトリック違反のビューが必要であることを理解しました。上司のレポートを作成するには、レポート機能も必要です。上記で説明したプラグインは、メトリックを表示したいときにメトリックをエクスポートする必要があるため、レポート用です。
right click a project -> Export
にオプションが表示されEclipse Metrics 3.12.0
ません。Eclipseマーケットプレイスから直接プラグインをインストールしました-バージョンは- です。だれでも手伝ってください。ありがとう!
常に「ブルートフォース」が存在します。
検索->ファイル
「含むテキスト」に次のように入力します-> ^.*$
。次に、[正規表現]チェックボックスをオンにします
「ファイル名のパターン」に次のように入力します-> *.java
「検索」をクリック
「検索」タブで一致数を確認してください。
\n[\s]*
、空行も無視されます
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 {} \;
find . -name "*.java" | xargs cat | grep "[a-zA-Z0-9{}]" | wc -l
別の方法では、たとえばLocMetricsなどの別のlocユーティリティを使用します。
また、他の多くのlocツールもリストされています。Eclipseとの統合は常に存在するわけではありませんが(Metrics2の場合と同じです。これは、それがMetricsよりも新しいバージョンであるため、チェックアウトできます)、少なくともこれらのツールは論理行(推計によって計算されます)終端セミコロンと終端中括弧)。
また、Eclipseメトリックを使用して、期待するものにより適合していることを確認することもできます。
別のツールはGoogle Analytixです。これにより、エラーが発生した場合にプロジェクトをビルドできない場合でもメトリックを実行できます
Eclipseでコード行を数える1つの可能な方法:
[検索/ファイル...]メニューを使用して、[ファイル検索]タブを選択し、[含まれるテキスト]に\ n [\ s] *を指定し(空の行はカウントされません)、[正規表現]を選択します。
ソースコードの行を数えることができるEclipseプラグインを作成しました。Kotlin、Java、Java Script、JSP、XML、C / C ++、C#、および他の多くのファイルタイプをサポートしています。
ぜひご覧ください。フィードバックをいただければ幸いです!
ProjectCodeMeterは、LLOC(論理的なコード行)をユーザーが記述したとおりにカウントします(有効な行のみ)。外部コードメトリックツールとしてEclipseに統合されますが、リアルタイムではありませんが、レポートを生成します。実際には、複雑さ、算術的な複雑さ、ハードコードされた文字列、数値定数などの多くのソースコードメトリックをカウントします。開発時間も数時間で見積もります。
静的分析については、SonarQubeを使用して推奨しています。SonarQube は、さまざまな言語で必要となる可能性のあるほぼすべてのメトリックを実行し、基本バージョンでは無料です(使用する言語の種類を分析するには料金がかかります)頭に銃を使ってコードを入力するだけです)。
ソースコードリポジトリから分析を実行するWebアプリとしてインストールする必要がありますが、Eclipseプラグインも含まれています。
一回限りのプロジェクトのコード行数を知りたいだけの場合は、やりすぎです。時間の経過とともにメトリックを追跡したり、プロジェクト間で比較したり、しきい値を超えたときに警告を発したりする場合などは、すばらしい方法です。
開示:SonarSourceとは金銭的な関係はありません。
最初に行うことは、「コード行」(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をカウントせず、その値を別のツールで測定されたそのコードの新しいバージョンと比較しないでください。