0

アリからメイヴンに移行するプロジェクトがあります。このプロジェクトでは、軽くカスタマイズされたHiveビルドを利用します。このビルドを内部のMavenリポジトリにインポートし、プロジェクトのpomファイルに依存関係としてリストするだけだと思いました。私が遭遇している問題は、Hiveビルドがbuild / dist/libに大量のjarを生成するだけであるということです。これらのいくつかはコアHivejar自体であり、いくつかはHiveが依存するjarです。これらに対処するための最良の方法は何ですか?すべてのコアハイブjarを内部リポジトリに配置し、新しいプロジェクトのpomファイル内の文書化されていない依存関係を処理する必要がありますか?または、すべてをjarのjarとしてjarアップし、それをリポジトリにデプロイしますか?そのアプローチはうまくいくでしょうか?まだメイヴン初心者のようなものです、助けてくれてありがとう。

4

1 に答える 1

1

変更した Hive ビルド用の POM を作成し、それを jar と共に内部アーティファクト リポジトリにデプロイする必要があります。この POM は、すべての依存関係 (つまり、他の jar) を指定する必要があります。それらの一部がカスタム バージョンでもある場合は、それらの POM も作成する必要があります。それ以外の場合は、標準の public groupId/artifactId を使用してください。これがMavenのやり方です。展開中だけに、Hive を構築するために POM を使用する必要は必ずしもないことに注意してください。

これを行う理由:

  • 依存関係を正しく指定しないと、誰かがプロジェクトに依存関係の完全なセットを含めるのを忘れたり、そのうちの 1 つに間違ったバージョンを指定したりするときに問題が発生する可能性があります。
  • jar の jar を作成すると、誰かがカスタム Hive の「uber jar」と、これらの依存関係のいずれかの異なるバージョンを同時に使用しようとすると、問題が発生する可能性があります。クラスパスに重複するクラスの複数のバージョンが存在することになります。

Maven にとって最善のことは、進行中のことをすべて伝えることです。それが聞きたいと思うことを伝えようとしないでください。

于 2011-06-27T01:37:19.063 に答える