5

アーティファクト リポジトリ マネージャーでリポジトリを作成する際に従うべき一連のガイドラインを説明する記事を探しています。

そんなこと知ってる:

  • スナップショット リポジトリにスナップショットを保持する必要があります。

  • リリースはリリース リポジトリに保持する必要があります。

  • サードパーティのアーティファクトは別のリポジトリにある必要があります (サードパーティ ライブラリのフォーク/パッチ バージョンについても同様です)。

  • int-*一般に、名前の前におよびを付けることをお勧めしますext-*

  • 通常、異なる製品ラインは独自のリポジトリを持つことになります。これは、アーティファクトが相互に依存しない場合があるためです。

私は、リポジトリを使用して他の企業や組織がこのアーティファクト分離の抽象化をどのように行っているかをクライアントに説明するために、これに関する記事を見つけようとしています。

よろしくお願いします!

4

2 に答える 2

1

ベスト プラクティスに関する多くの質問と同様に、答えは次のとおりです。

技術的には、必要な区別は 2 つだけです。

  • スナップショット vs リリース リポジトリ

  • ホステッド リポジトリとプロキシ リポジトリ

スナップショットとリリース リポジトリを区別する必要があるのは、Maven リポジトリ形式であるためです。したがって、Maven とその他のビルド ツールでは、メタ データの操作方法とアップロード中の動作が異なります。

プロキシ リポジトリの場合は、プロキシに必要な数だけ追加する必要があります。これは、必要なコンポーネントによって異なり、スナップショットとリリース リポジトリをプロキシする場合は別になります。

ホストされたリポジトリの場合、スナップショットとリリースのリポジトリも別々にする必要があります。それを超えると、すべて手に入れることができます。Nexus (および Artifactory) およびその他のセットアップで事前構成された別のサード パーティ リポジトリを持つことは確かに便利ですが、実際には必要ではありません。必要に応じて、これらすべての区別を内部メタデータによって分類できます。

同じように、全員に 1 つのリリース リポジトリ、または各チームに 1 つのリリース リポジトリを作成できます。これらのリポジトリ内のアクセス権を適用して、Nexus でリポジトリ ターゲットを使用して個別のアクセスなどを行うことができます。Artifactory と Archiva も同様のことができると思います。ここでの質問は、ほとんどの場合、管理、バックアップ、セキュリティのセットアップ、およびユーザーのアクセスの容易さに帰着します。

あなたが言及したような命名規則は、個別のリポジトリが必要な場合に役立ちますが、技術的にはこれは必要ありません。

私が見た他のものは、たとえば、レガシープロジェクトライブラリをレポに移行するために使用されるが、移行が完了するとフリーズする移行レポ、チームごとに個別のレポ、プロジェクトごとに個別のレポなどです。もう 1 つの側面は、さまざまなレベルの承認のための個別のリポジトリなどです (たとえば、http://blog.sonatype.com/people/2013/10/golden-repository/で問題を確認してください) 。

ただし、最終的には、これはすべて使いやすさとメタデータに大きく左右され、必須ではありません。最終的に、これらのリポジトリはほとんどの場合グループ化され、1 つのグループを介してアクセスされるため、分離全体がフラットになります。また、アクセス権は引き続きグループに引き継がれるため、すべてを自由に制御できます。したがって、それをどのように切り刻み、管理するかは好みの問題になります。

PS: Maven リポジトリとフォーマットについて言及しています。ミックスに他のフォーマットを大量に追加し、それらを他のフォーマットで公開するラッパーを追加すると、すべてがより複雑になりますが、物事の背後にあるアイデアは同じままです.

于 2013-10-03T01:22:17.347 に答える