1

多かれ少なかれ一度にリリースする必要がある多数の SNAPSHOT アーティファクトがあります。並べ替えを行ってから依存関係を一覧表示するプラグインを探していました (dependency:list は依存関係をアルファベット順に表示するように見えますが、dependency:tree は私たちの目的には特に便利ではありません)。

「依存度が最も低い」アーティファクトを最初にリリースし、次に「より依存度が高い」アーティファクトをリリースできるようにソートを行いたいと考えています。

他の誰かがこの必要性に遭遇したことがありますか?

4

1 に答える 1

0

私は自分でプラグインでこれをしなければなりませんでした。Maven リストに載っている人々は、これが役に立つとは考えていないようでした。これが私がやった方法です: http://maven.40175.n5.nabble.com/Topologically-sorting-dependencies-tp3384898p3387803.html

簡単に言えば、依存関係の解決が に設定されたプラグインでtest:

  1. MavenProjectそのgetArtifacts()呼び出しを介して にアーティファクトを要求します。
  2. 注入されたものに for eachMavenProjectBuilderを構築するように依頼します。MavenProjectArtifact
  3. のリストを用意して、そのリストをMavenProject呼び出しProjectSorterます。
  4. の結果のリストは、MavenProjectトポロジー的にソートされます。
  5. これらの のそれぞれについて、そのメソッドを介してMavenProjectその定義を取得します。ArtifactgetArtifact()
  6. とを使用して、コロンで区切られたキーを作成しますArtifactgroupIdartifactId
  7. そのキーを使用してArtifact、 realMavenProjectのアーティファクト マップで解決済みを検索します。
  8. そのアーティファクトのgetFile()プロパティが設定され、必要なことを行うことができます。

これは信じられないほど面倒ですが、他に方法はありません。これがお役に立てば幸いです。

于 2011-02-20T15:42:25.783 に答える