31

世界中の別々のデータ センターにクラウド サーバーを配置しています。各データセンターは、他から分離されています。

これらの各リージョンで、アーティファクトをサーバーの個々のクラスター (さまざまなバージョンのソフトウェア、つまり開発、テスト、および運用クラスターを実行している可能性があります) に簡単かつ一貫してデプロイする簡単な方法を探しています。クラウド サーバー上でインストール スクリプトを実行して、正しいソフトウェア アーティファクトを取得できるため、アーティファクト サーバーが必要なように思えます。

現在は運営側の仕事をしています。ビルドを行ったり、ソフトウェア ビルドの依存関係を管理したりすることは気にしません。後でアクセスできるように、パッケージのさまざまなバージョンをすべて格納できる Artifact サーバーが必要です。キッカーは、保存するいくつかの異なるタイプのアーティファクトがあることです。

  • シェルスクリプト
  • Python スクリプト
  • パペットマニフェスト
  • Debian ファイル (多くの場合、複数の debian の tar.gz ファイルとして提供されます)

Nexus または Artifactory は、これらのタイプのパッケージをすべて管理できますか? それとも、別の方向に目を向けるべきですか? 単純に tar.gz ファイルを生成するだけのシェル スクリプト プロジェクトに make ファイルを追加することに反対しているわけではありません。最終的には、少しのスクリプト、wget、および apache サーバーが問題なく機能する場合に、アーティファクト リポジトリをセットアップする道をたどりたくありません。

4

5 に答える 5

27

ArtifactoryNexusはどちらも「バイナリ リポジトリ マネージャー」であるため、あらゆるタイプのファイルを処理できます。

とはいえ、Nexus は技術的にはあらゆるファイルを保存できますが、Maven リポジトリ レイアウトに準拠していないバイナリのサポートが不足しています。たとえば、そのようなファイルは索引付けされず、検索で取得できません。また、Maven 以外のアーティファクトがパス内のモジュール情報を妨害する場合、現時点では Artifactory がそれを利用してアーティファクトのバージョン ベースの操作 (最新バージョンのクエリのダウンロードなど) を許可できる唯一のリポジトリです。

これらのツールは両方とも、Mavenの世界で問題を解決することから始まりましたが、スマートなバイナリ管理の必要性は、操作を含む他の多くの分野で認識されています。

バイナリには専用のマネージャーが必要ですが、最初はネットワーク共有/SCM/ファイル サーバーが実行可能なオプションのように見えます。スケールしません

また、他のアドホック ソリューションに対するマネージャのメリットについては、同様の質問に対する私の回答も参照してください。

于 2012-10-26T07:33:33.667 に答える
5

はい、非 jar ファイルをアップロードできます。例えば:

mvn deploy:deploy-file -DgroupId=org.group.id -DartifactId=artifact-id -Dversion=0.0.0.1-SNAPSHOT -Dpackaging=tar.gz -DrepositoryId=repository-id -Durl=http://url -Dfile=localfile-0.0.0.1-SNAPSHOT.tar.gz

Nexus の新しいバージョンでは、tar、swf などの特定のファイルが適切に形成されていることを検証することによって処理されます。ただし、これにより、予期しない、または望ましくない動作が発生する可能性があります。

これが最善の方法ですか...ユースケースに基づいて判断できるのはあなただけです。アーティファクトが変更される頻度、ネットワーク遅延などの要因が、戦略を成功または失敗させる可能性があります。

参照:

https://stackoverflow.com/a/33311645/32453

http://betterlogic.com/roger/2012/04/mavennexus-upload-tgztar-gz-file/

于 2012-10-24T18:25:22.817 に答える
0

curl でやりたい場合は、次のアプローチを試してください: https://support.sonatype.com/entries/22189106-How-can-I-programatically-upload-an-artifact-into-Nexus-

于 2015-04-23T13:19:19.503 に答える