ねこ元帥の中の人@リウマチ

日々の覚書など。ブログ名はオンラインゲームのアカウント名をいつも「ねこ元帥」にしているから。そして、2013年11月リウマチと診断されたとです。(2012年11月から時々手足に原因不明の痛みが発生、2013年9月以降は足の痛みが常態化、2013年12月30日からMTX服用開始、4月過ぎるころにはわずかの痛みが残る程度まで回復して現在に至る。)

sbt-statsプラグイン使用メモ

ソースコードの行数、コードとコメントの比率などの統計情報を表示するプラグイン。

sbt-statsプラグインの読み込み

参考:sbt-statsプラグインのgitリポジトリ

plugins.sbt に以下の設定を記述する。他に設定は必要なし。

addSbtPlugin("com.orrsella" % "sbt-stats" % "1.0.2")

sbt-statsプラグインの実行

stats タスクを実行すると、以下の通り結果が表示される。
マルチプロジェクト設定の場合、全プロジェクトに対して処理される。

> stats
[info]
[info] Code Statistics for project:
[info]
[info] Files
[info] - Total:      3 files
[info] - Scala:      2 files (66.7%)
[info] - Java:       1 files (33.3%)
[info] - Total size: 1,246 Bytes
[info] - Avg size:   796 Bytes
[info] - Avg length: 38 lines
[info]
[info] Lines
[info] - Total:      63 lines
[info] - Code:       46 lines (73.0%)
[info] - Comment:    5 lines (7.9%)
[info] - Blank:      12 lines (19.0%)
[info] - Bracket:    10 lines (15.9%)
[info]
[info] Characters
[info] - Total:      1,038 chars
[info] - Code:       989 chars (95.3%)
[info] - Comment:    49 chars (4.7%)
[info]

マルチプロジェクトで個別のプロジェクトの統計情報を表示したい場合は、以下の通り、プロジェクトを切り替えて stats-project タスクを実行する。

> project app-main
> stats-project
[info]
[info] Code Statistics for project 'app-main':
[info]
[info] Files
[info] - Total:      1 files
[info] - Scala:      1 files (100.0%)
[info] - Java:       0 files (0.0%)
[info] - Total size: 346 Bytes
[info] - Avg size:   346 Bytes
[info] - Avg length: 13 lines
[info]
[info] Lines
[info] - Total:      13 lines
[info] - Code:       11 lines (84.6%)
[info] - Comment:    0 lines (0.0%)
[info] - Blank:      2 lines (15.4%)
[info] - Bracket:    2 lines (15.4%)
[info]
[info] Characters
[info] - Total:      279 chars
[info] - Code:       279 chars (100.0%)
[info] - Comment:    0 chars (0.0%)
[info]

注意事項

sbt-statsプラグインは、処理対象のファイル(ソースコード)のエンコーディングをデフォルトエンコーディングで処理するため、Windows環境で実行すると日本語を含むファイルの読み込み時UnmappableCharacterException例外が発生する。
エンコーディングを指定するオプションなどは無いようなので、javaシステムプロパティでエンコーディングを指定することにした。

sbt "-Dfile.encoding=UTF-8"

最新版のコンパイル

git clone https://github.com/orrsella/sbt-stats.git
cd sbt-stats

sbt

set sbtVersion := "0.12.4"
set sbtBinaryVersion := "0.12"
set scalaVersion := "2.9.2"
publish-local