Locked History Actions

ivy/IvyDE/revdepexplorer

逆依存性エクスプローラ

以下はhttp://ant.apache.org/ivy/ivyde/history/latest-milestone/revdepexplorer.htmlの翻訳

紹介

一つのワークスペースの中の複数のプロジェクトで作業を行っており、 それらは、より大きなアプリケーション全体か一部であるとする。 そんなとき、複数のIvyファイル(※訳注:pom.xmlをivyファイルとしている場合にも対応)の中の依存のリビジョンを一つのリビジョンに同時に変更したい場合があるだろう。

あるいは、単に各のプロジェクトのそれぞれのモジュールでデスクリプタを調べることなしに、プロジェクトによって依存がどのように利用されているかを見たい場合があるかもしれない。

Reverse Dependency Explorerは依存ツリーをさかさまにし、organization, module, revisionを調査し、 プロジェクト・クラスパスコンテナを横断してrevisionを同期するメカニズムを提供する。

次のように、三つのプロジェクトのあるワークスペースを考えてみよう。それぞれのルートにはivy.xmlファイルがある(訳注:pom.xmlでもよい)。 これらのivyファイルは関連するIvyDE管理のクラスパスコンテナを持つ。

http://ant.apache.org/ivy/ivyde/history/latest-milestone/images/revexplorer_project.jpg

いずれか(あるいはすべて)のプロジェクトを右クリックし、「Ivy > Reverse Dependency Explorer」を選択するとビューがオープンする。 エクスプローラは、それぞれのorganization/moduleペアについて一つのアイテムとなる木構造を表示する。 第三列はこのペアの、選択したプロジェクトについてのすべてのrevisionを表示する。 ツリーアイテムを展開すると、ivyクラスパスコンテナの依存するモジュールリビジョンを確認できる(もしあれば)。 ただし、このビューでは直接依存のみを示し、推移的依存は示されない。

※訳注:プロジェクトは開いた状態でないと調査対象にならない。「すべて」を選択するには、「編集>すべて選択」メニューを使うのが簡単。

http://ant.apache.org/ivy/ivyde/history/latest-milestone/images/revexplorer_view.jpg

衝突のあるorganization/moduleペアは赤でハイライトされる(上の例ではjunit)。 ただし、リビジョン不一致であっても、これら二つのリビジョンアトリビュートは実際には同一のアーティファクトにresolveされる、 リポジトリが何を提供しているにもよるが。 このビューでは、実際にresolveした場合にresolveされたアーティファクトが一致するかどうかは関知しない。 単にテキスト上のアトリビュートを比較するだけである。

※訳注:推移的依存については知らんふりなので、このビューで衝突がなくとも、実際には衝突している可能性がある。

リビジョン間の同期

リビジョンを同期させる方法だが、「new revision」列の変更したい行をクリックしてタイプする。 アイテムは緑色になる。これは同機のためのタグである。 以下に示すようにsynchronizedボタンをクリックして変更をセーブする。

http://ant.apache.org/ivy/ivyde/history/latest-milestone/images/revexplorer_sync.jpg

※訳注:この機能は少なくともpom.xmlをivyファイルとしている場合はうまく動作しない。実行すると、pom.xmlが壊れてしまう。