com.stateofflow.eclipse.metricsの謎
はじめに
Eclipseで使えるメトリクス計測ツール (4/5):Eclipseで使えるテストツールカタログ(3) - @ITに紹介されれているState of Flow: EclipseMetrics::projectsというプロダクトがあります。
配布元が@ITの記事とは異なっていますが、なぜなのかは知りません。
で、これをantから実行できるっぽいのですが、どうにも細部がわかりません。
で、途中まで調べてみたのでメモ。
antでの実行手順だと思われるもの
CVS Info for project eclipse-metricsに実行方法のヒントが書かれております。
どうやら、eclipse上からantを実行するときは「export」というタスクを使用する。
コマンドラインからantを実行するときは、「exportをデフォルトとしたbuild.xmlを用意し、それをECLIPSE_INSTALL_DIR/plugins/org.eclipse.equinox.launcher_VERSION.jar経由で実行する」と言うことのようです。
ECLIPSE_INSTALL_DIR/plugins/org.eclipse.equinox.launcher_VERSION.jar経由で実行する理由
eclipseのjarファイルに依存している部分が存在するため、完全にeclipseと切り離せないっぽいです。
com.stateofflow.eclipse.metrics.ant.ExportMetricsTaskのimport部分を引用します。
import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.JavaModelException; import com.stateofflow.eclipse.metrics.MetricsBuilder; import com.stateofflow.eclipse.metrics.MetricsPlugin; import com.stateofflow.eclipse.metrics.builder.list.CompilationUnitList; import com.stateofflow.eclipse.metrics.export.Exporter; import com.stateofflow.eclipse.metrics.export.html.HtmlExportConfiguration;具体的にどのjarファイルに依存しているか調べるのは若干根性が必要です。
なので調べてません。
.classpathファイルが以下のように記述されており、具体的なjarファイル名が良くわかんないからです。
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" output="classes_ant" path="src_ant"/> <classpathentry kind="lib" path="lib/jfreechart-0.9.8.jar"/> <classpathentry kind="lib" path="lib/jcommon-0.8.0.jar"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="lib" path="lib/j2h.jar"/> <classpathentry kind="output" path="classes"/> </classpath>https://sourceforge.net/scm/?type=cvs&group_id=128057からEclipseにソースを取り込んで、Eclipseを使って解析すれば、解析自体は不可能ではないと思われます。
com.stateofflow.eclipse.metrics.ant.ExportMetricsTask以外で使用されているEclipseのjarの数が分からないので、解析に掛かる時間は全く読めませんが……。
さいごに
com.stateofflow.eclipse.metrics、出力結果はかっこいいんですけど配布されてるドキュメントにもうちょい気合いが欲しいところ。
まあ、そんなこというなら自分で書けと言うことでしょうが。