4

Maven を使用してカスタムの非 Java アーティファクト リポジトリにアクセスする方法を探しています。Windows 共有上に、(多かれ少なかれ) 多数の zip ファイル (ネイティブ実行可能ファイル、ヘッダー ファイルなどを含む) で構成されるアーティファクト リポジトリがあります。これらは、必要に応じてこれらのアーティファクトをマテリアライズ/アンパックできる Ruby スクリプトによってアクセスされます。ディスクには保存されていないが、他の場所 (Subversion など) からマテリアライズされるアーティファクトもあります。

これらのリポジトリを Maven ビルドに統合して、(たとえば) 統合テストでネイティブ アーティファクトの .exe および .dll ファイルを使用できるようにしたいと考えています。Nexus と Artifactory を見てきましたが、このシナリオにどれだけ適しているかを判断するのは困難です。「カスタム レイアウト」に関するドキュメントのほとんどは、何らかの Java アーティファクトについて話していることを想定しているようです。

4

3 に答える 3

4

これらは「Mavenリポジトリ」と呼ばれるという事実を忘れてください。Mavenにはリポジトリ構造に対する一定の期待がありますが、この同じ構造は、他のほとんどすべてのJavaビルドツールで使用されているものでもあります。これらは、groupId、artifactId、version、qualifierの座標を持つアーティファクトの一般的なストレージと考えてください。

優れたリポジトリマネージャは、このリポジトリに何を保存しているかを気にしません。それはあなたが保存したいものなら何でもZIPファイル、EXEである可能性があります。気になるのは、アーティファクトがこのリポジトリ構造に格納されることだけです。リポジトリマネージャを使用すると、これらの座標でアドレス指定できるアーティファクトのコレクションになります。

私はリポジトリマネージャーを使用して、デプロイメントプロセスで使用されるZIPファイルの保存など、Javaとは関係のない多くのことを実行します。curlを使用してリポジトリマネージャーにアクセスします。この場合、保存しているファイルに何らかの構造を適用する、RESTでアクセス可能な単純なビットバケットと見なすことができます。

(また、ArtifactoryまたはNexusのどちらにもマーケティングされていない私の答えに注意してください。;-)

于 2012-06-18T12:47:40.837 に答える
1

ここでの最も簡単な解決策は、リポジトリを HTTP 経由で公開して、たまたま標準の Maven レイアウトとメタデータを持つようにすることです。

それがうまくいかない場合は、Maven のいくつかの部分を実装する方法について学習します。

于 2012-06-12T20:12:57.750 に答える
1

Artifactory は Maven と結び付けられておらず、レイアウトに関係なく、任意のバイナリを保存および検索できます (カスタム レイアウトは、Artifactory でアーティファクトに関するモジュール情報を抽出する場合にのみ必要です。これは、バージョンの自動クリーンアップ、クロスレイアウト変換、等。)。

Artifactory は純粋に HTTP を使用してアクセスできるため、GET および PUT クエリ (それぞれ解決および公開用) を送信できる任意のビルド ツールと通信できます。一般的な使用例の 1 つは curl を使用することですが、Artifactory には、主要な CI ツールとの優れた OOTB 統合もあり、構成ベースの解決と公開を簡単に行うことができます。このブログ投稿は、Artifactory を使用した非 Java/非 Maven ビルドの実行に関する一般的な情報として役立つ場合があります。

于 2012-06-13T06:25:52.307 に答える