7

私のチームは、Java プロジェクトで Maven を使い始めたばかりです。Maven を使用してインターネットから依存関係を取得するすべてのプロジェクトができましたが、Maven リポジトリを使用して、作成して jar にパッケージ化した共通の共有 Java クラスを共有したいと考えていました。

Maven Nexus サーバーをセットアップしましたが、プロキシとしてうまく機能しているようです。次のステップは、構築した jar の 1 つを取得し、それをローカル nexus リポジトリにデプロイすることです。これにより、すべての開発者がそれを依存関係として共有できます。しかし、どこから始めればよいかわかりません。

mvn install を実行すると、コードがローカル (私の PC) リポジトリに配置されますが、これは私が探しているものではありません。nexus リポジトリにインストールして、チームの全員がアクセスできるようにしたいと考えています。私を助けてください。

4

2 に答える 2

3

おそらく少しは知っていると思いますが、Maven リポジトリーのセットアップに関する (他の人向けの) 概要を以下に示します

リポジトリを作成したら、各依存プロジェクト (またはマスター pom を共有している場合) に戻り、ビルド用にプルされるソース リポジトリに追加されるようにリポジトリを定義する必要があります。

私はApache の Archivaを使用して良好な結果を得ており、バイナリ アーティファクト自体を提供できない場合にアップストリーム リポジトリからバイナリ アーティファクトをダウンロードして収集するように、Maven プロジェクト リクエストの「キャッシュ プロキシ」になることをサポートしています。とはいえ、ドキュメントはもう少し改善される可能性があります。

Artifactoryのように評価の高い製品は他にもあります。評価の候補と見なすこともできます。

適切なディレクトリ構造を持つ任意の ssh サーバーと同様に、ビルドにはリポジトリ管理システムは必要ありません。ただし、このようなシステムを使用すると、自動キャッシングとリクエスト プロキシを組み合わせて、ユーザー アクセスを管理する手段を提供し、複数のリポジトリ (開発/QA リリース/一般的な可用性) を構造化および管理し、管理を行う可能性のある奇妙なレポートを実行することで、作業が楽になります。簡単です(それらを使用する場合)。

そのようなサーバーを実際に使用する限り、pom には 2 つの「部分」を変更する必要があり、1 つの (おそらく) 追加ファイルを追加する必要があります。

  1. リポジトリからプルするには、プロジェクトの <repositories> セクションを再構成する必要があります。
  2. 新しいリポジトリにデプロイするには、プロジェクトの <distributionManagement> セクションを再構成する必要があります。
  3. リポジトリにアクセスするための資格情報を保存するには、「settings.xml」ファイルを変更または作成する必要があります。

それを超えると、それはスタイルの問題になります。2 つのリポジトリを設定して、スナップショットを「リリース」から分離することをお勧めします。これにより、必要なリリース バージョンを長期にわたって保持するリスクなしに、スナップショット リポジトリから古いファイルを頻繁に削除できます。

次に、ビルドに必要なすべてのアイテムを社内でキャッシュするかどうかを決定する必要があります。その場合、「外部」リポジトリからプルしないようにプロジェクトを再構成し、「不足している」アーティファクトをリポジトリの適切なディレクトリにダウンロードする必要があります。多くのリポジトリ管理製品の「自動プロキシ キャッシュ」機能は、まさにこれを行います。

次に、 Mavenシステムのすべてのプラグインを社内でキャッシュするかどうかを決定する必要があります。その場合はpluginRepositoryが必要で、カスタム プラグインをデプロイする場合はpluginSnapshotRepositoryが必要です。はい、たくさんのように聞こえますが、これらのリポジトリを 4 つ同時に実行するのは、1 つ実行する場合よりもほんの少し手間がかかります。

幸運を!

于 2012-10-05T15:39:31.140 に答える
0

DistributionManagement Mavenプラグインを使用して、アーティファクトのデプロイまたはインストールを実行できます。詳細はこちら。http://www.stefanolocati.it/blog/?p=1034

于 2012-10-05T15:22:25.187 に答える