v0.5.1 大規模な Java class / jar 対策+逆引きサマリ生成を追加
v0.5.1 大規模な Java class / jar のインデックス生成に向けて、出力サイズを抑えるためのパッケージ除外指定と、メソッド呼び出しの逆引きサマリ生成を追加
Release Body
概要
大規模な Java class / jar のインデックス生成に向けて、出力サイズを抑えるためのパッケージ除外指定と、メソッド呼び出しの逆引きサマリ生成を追加しました。
method-call-summary.jsonl から method-call-reverse-summary.jsonl を生成できるようになり、「どのクラス・メソッドが呼び出されているか」を target-first で検索しやすくなっています。
主な変更
-
パッケージ除外指定を追加
--exclude-packageにより、指定パッケージのクラスをインデックス対象から除外classes.jsonl、sources.jsonl、symbols.jsonl、dependencies.jsonl、method-calls.jsonl、method-call summary、per-class JSON の dependencies/calls に反映- shaded library や生成コードなど、大規模入力で JSONL が膨らみやすいパッケージを外部から指定可能
-
method-call edge 専用の除外指定を追加
--exclude-call-packageにより、クラス・シンボル・依存関係は残しつつ、該当パッケージに関係する method-call edge のみを除外可能
-
逆引きメソッド呼び出しサマリを追加
method-call-reverse-summary.jsonlを生成method-call-summary.jsonlと同じ集約粒度で、toClass/toMethodを先頭にした target-first 形式を出力index.jsonにmethodCallReverseSummaryIndexを追加
-
split phase に
step4を追加step4はmethod-call-summary.jsonlからmethod-call-reverse-summary.jsonlを生成.class/.jarを読み直さず、既存の summary から派生ファイルを作成
-
CLI help を拡充
- 生成ファイル一覧
step1からstep4の責務--exclude-packageと--exclude-call-packageの違い- 大規模システム向けの注意
- wildcard pattern のクォート例を追加
-
Maven plugin に除外パラメータを追加
miku-javaclass2json.excludePackagesmiku-javaclass2json.excludeCallPackages
-
ドキュメントを更新
- README に reverse summary、除外指定、
step4、Maven plugin parameter を追加 - advanced indexing に split 実行時の除外指定と
step4を追記 - design memo に
noDescendPackages/excludePackages/excludeCallPackagesの違いを追記
- README に reverse summary、除外指定、
-
バージョンを
0.5.1に更新- parent / child POM
- README
- advanced docs
- smoke script
確認
mvn test