検出するのにどのツールをお勧めしますかJavaパッケージの循環依存関係、検出された「パッケージ全体のサイクル」に含まれる特定のクラスを明示的にリストすることを目的としているため、?
classycle と JDepend について知っていますが、どちらも循環パッケージの依存関係に関連するクラスのリストに失敗します。 Metrics は、興味深いサイクルのグラフィック表現を持っていますが、これもパッケージに限定されており、いつか読むのは非常に困難です。
私は次のものを得るために疲れています:
"これら3つのパッケージ間にパッケージサイクル依存関係があります
それぞれにxxxクラスがあります
適切なクラスを見つけてこのサイクルを断ち切ります "
サイクルが検出された理由を実際に説明するために追加の手順を実行するツールを知っていますか(つまり、「関係するクラスを一覧表示する」)。
Riiight ...結果を宣言する時間:
@ l7010.de:努力をありがとう。私は(特に十分な担当者がいる場合は)投票して、特に「CAP」の回答を求めます...しかし、CAPは水に沈んでおり、Eclipse 3.4との互換性がなくなりました。残りは商用で、私はフリーウェアだけを探します。
@ daniel6651:ありがとうございましたが、言われたとおり、フリーウェアのみです(そもそも言及しなかったことをお詫びします)。
findbugsを頻繁に使用している@izb(現在、最新の1.3.5を使用しています)をクリックして回答を受け入れます... findbugがサイクルを検出するためにアクティブ化するオプションを説明できる場合は、その機能は .8.7バージョンが渡される (クラス間の循環依存関係を見つけるための 'New Style Detectorを探す')についてのみ言及されており、私はテストできません。更新:これで動作し、そのオプションがアクティブ化されていない古いfindbugs構成ファイルがありました。私はまだ好きです [〜#〜] cad [〜#〜] でも;)
THE ANSWER is ...を参照してください 下記の自分の(2番目の)回答
Findbugsは循環クラスの依存関係を検出でき、Eclipseプラグインもあります。
ええと...テスト後 上記のDepFinder は、単純な依存関係をすばやく検出するのに最適ですが、クラスの数に合わせて拡張できない...
したがって、実際の実際の答えは:CDA-Class Dependency Analyzer
これは高速で最新の使いやすいツールであり、クラスとその循環依存関係をグラフィカルに表現します。夢が実現する ;)
クラス(.class)のディレクトリのみを入力するワークセットを作成する必要があります(完全なクラスパスは必要ありません)。
オプション「循環依存関係を検出- ALT-C"アドバタイズとして機能し、私の468クラスを分析するためにCPUの100%を何時間も要しません。
注:ワークスペースを更新するには、クラスの新しいスキャンをトリガーするために、ワークスペースを再度開く(!)必要があります。
Highwheel クラスとパッケージのサイクルを検出し、依存関係のソースをクラス/メソッド/フィールドレベルまで報告し、関係のタイプ(継承、構成、メソッドシグネチャの一部など)を示します。
また、大きなサイクルをサブエレメントに分解します。サブエレメントは、個別に理解/取り組むことができます。
出力は、最新のブラウザーを必要とするSVGコンテンツが埋め込まれたHTMLです。
これを行う Structure101 もあります。
ソナー を使用してパッケージサイクルを検出します。依存関係のニースグラフを描画し、どの依存関係が間違っているかを示します。依存関係が使用されているソースに移動することもできます。
http://www.sonarsource.org/fight-back-design-erosion-by-breaking-cycles-with-sonar/ を参照してください
最初の考えられる答えは...きれいではありません。しかし、それは私が求めていることを実行し始めます(より良い解決策は 下に表示 です)。
依存関係ファインダー ! ダウンロードする 、解凍します。
これはこれまでで最もモダンでアクティブなプロジェクトではありませんが、[Dependency Finder] /bin/DependencyFinder.batを編集して、DEFAULT_DEPENDENCYFINDER_HOMEのパスを追加し、Java_HOMEを設定すると、プロジェクトを起動できます。
次に、[抽出]ボタン(CTRL-E-最初のボタン)をクリックし、クラスパスを入力して、スキャンしてみます。
トリッキーな部分は、「プログラミング要素」と「クロージャ」のアイテムの正しいセットをクリックして、結果の詳細レベルに圧倒されないようにすることです。
そして、ここに行きます。
「<->」が表示されているときはいつでも、ニース循環依存関係を持っています。 (「閉鎖」側で「機能」を選択すると、サイクルをトリガーする機能を知ることもできます-素晴らしいです。)
他の提案をテストする準備ができています。
また、オープンソースツール [〜#〜] cap [〜#〜] を使用できます。これはEclipseプラグインです。
CAPにはグラフィカルなパッケージビューがあり、クラスへの線が表示されるため、(円のサイズに応じて)数回クリックすると原因がわかります。
これを行う1つのツールは、ソフトウェア tomograph です。これは商用であり、UIは:o
いくつかの商用ツールがあります:この目的で使用できるStructure101とLattix。