ビルドアーティファクトリポジトリマネージャーを推奨
現在、FTPを使用して、ビルドアーティファクトの配布とサードパーティ製品(内部使用のみ)を維持しています。
アーティファクトは、ドキュメント(HTML/pdf/chm/...)、ライブラリ(.dll/.so/.a/.jar/...)、プログラム(.exe/.jar/...)などです。それらはJava/.NETに制限されておらず、さまざまなカルチャー(ファームウェア、ドライバー、モバイル/ワークステーション、GUI、Win/Linux/Mac/Solaris/AIXなど)から来ている可能性があります。
階層を組織化するには、次のようなパスを使用します。
ftp:// 3pp/VENDOR/PRODUCT/VERSION/... ftp://3pp/opensource/PACKAGE-xxxtar.bz2 ftp:// dist/PRODUCT/VERSION /...
アーティファクトの説明を維持するには、[〜#〜] readme [〜#〜]および[〜#〜 ]変更[〜#〜]プレーンテストファイル(reStructuredText)。
このスキーマには何が欠けていますか?
- 権限がありません(誰でもストレージを損傷する可能性があります)。
- 依存関係の追跡がありません(バージョンの依存関係が変更された場合、everyビルドファイルを更新する必要があります)。
- フェッチアクティビティがありません(一部のファイルは不要になったようですが、どのファイルかわかりません)。
私は既存の解決策を深く探していません。 rpm/dpkgのような一部のパッケージマネージャー、Mavenリポジトリなどについて聞いた...
ビルドアーティファクトリポジトリマネージャーをお勧めします。また、欠点や制限を聞くのも良いことです。
[〜#〜]更新[〜#〜]
カスタムソフトウェアアーティファクトリポジトリを作成しています。すでにこれを行っている3つのオープンソースプロジェクトがあります。
ArtifactoryとNexusにも有料版があります。
これらのリポジトリにはあらゆる種類のファイルを保存でき、Mavenを使用する必要はありません。それらにアーティファクトを手動でデプロイできます。きめ細かいアクセス制御を設定できます。これらは、自動ビルドツールとうまく統合されます。
これらのツールの1つを使用すると、多くの労力を節約できると思います。
ここ は、3つの間の公平な(コミュニティ主導の)比較マトリックスです。
SVN + Apache(mod_dav_svn.so、mod_authz_svn.so)では、次のようになります:
- ダウンロード用にサポートされるクライアントの範囲が広いHTTPプロトコルを介した匿名の読み取り専用アクセス(wget/curl from GNU Make、Apache Antのタスク)。
ユーザー/グループのための保守が容易な書き込みアクセス(簡単な構文):
[repo:/ path] user = rw
死体ユーティリティを介して。
LDAPとの統合。
- リリースの履歴(いつ、何を、誰が)。
- アトミック操作(同時リリースの防止とエラー時のロールバック)。