Skip to content

v0.5.1 大規模な Java class / jar 対策+逆引きサマリ生成を追加

Choose a tag to compare

@igapyon igapyon released this 06 May 09:40
· 6 commits to devel since this release
8770b08

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.jsonlsources.jsonlsymbols.jsonldependencies.jsonlmethod-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.jsonmethodCallReverseSummaryIndex を追加
  • split phase に step4 を追加

    • step4method-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.excludePackages
    • miku-javaclass2json.excludeCallPackages
  • ドキュメントを更新

    • README に reverse summary、除外指定、step4、Maven plugin parameter を追加
    • advanced indexing に split 実行時の除外指定と step4 を追記
    • design memo に noDescendPackages / excludePackages / excludeCallPackages の違いを追記
  • バージョンを 0.5.1 に更新

    • parent / child POM
    • README
    • advanced docs
    • smoke script

確認

  • mvn test