2012-10-24 6 views
22

私は世界中の別々のデータセンターにクラウドサーバーを配置しています。各データセンターは他のデータセンターとは別個です。NexusやArtifactoryは単純なtar.gz成果物を保存できますか?

これらの各領域で簡単に一貫性のあるサーバーの個々のクラスタ(つまり、異なるバージョンのソフトウェア、つまり開発、テスト、および運用クラスタを実行している可能性があります)に簡単に異物を配備する方法を探しています。クラウドサーバー上でインストールスクリプトを実行することができるため、適切なソフトウェア成果物をプルダウンするため、アーティファクトサーバーが必要なのです。

今、私は操作面で作業しています。私はビルドやソフトウェアビルドの依存関係を管理することに気をつけません。私は、後でアクセスするために私のパッケージの異なるバージョンをすべて保存できるアーティファクト・サーバーがほしいのです。キッカーは、私はいくつかの異なるタイプのアーティファクトを保存するということです。

  • シェルスクリプト
  • Pythonスクリプト
  • 人形がNEXUSやArtifactoryは、これらのすべてを管理することができ

(多くの場合、複数のdebiansのtar.gzファイルとして配信)

  • Debianのファイルを明示するパッケージの種類、あるいは私が別の方向を見ているべきかどうか?私は、単純にtar.gzファイルを生成するシェルスクリプトプロジェクトにmakeファイルを追加することに反対していません。私はちょうど小さなスクリプト、wget、そしてapacheサーバがうまくいくと、アーティファクト・リポジトリを設定する道を踏み出すことを望んでいません。

  • 答えて

    22

    Artifactory両方ネクサスは、任意の種類のファイルを扱うことができます。

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

    ツールは、Maven世界の問題を解決することから始めて、スマートなバイナリ管理の必要性は他の多くの分野で認識されていますoperations included

    バイナリには特別なマネージャが必要ですが、ネットワーク共有/ SCM /ファイルサーバーは最初は実行可能なオプションのようですが、彼らはちょうどスケールしない

    他のアドホックソリューションよりもマネージャの利点のいくつかについては、my answer to a similar questionも参照してください。

    4

    はい、非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 
    

    新しいバージョンは、それらが適切に形成されていることを検証することにより、タール、swfファイル、および他のような特定のファイルを処理します。しかし、予期しない動作や不要な動作が発生する可能性があります。

    これは最善の方法ですか...あなたのユースケースに基づいて言うことができます。アーティファクトの変更頻度、ネットワーク遅延などの要因は、戦略を立てるか中断するかのような要因があります。

    引用文献:彼らは両方"バイナリリポジトリマネージャ"あるよう

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

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

    +0

    感謝をリンクするために。役に立った! –

    0

    あなたは(他の回答を参照)することができます。 (例ではいいだろうが)また、このような場合のためにそれらを参照することができます。

    あなたが/を参照して、このプラグインのようにそれらを使用することができます。

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <executions> 
         <execution> 
         <id>copy</id> 
         <phase>package</phase> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
         <configuration> 
          <artifactItems> 
          <artifactItem> 
           <groupId>org.apache</groupId> 
           <artifactId>activemq-distro</artifactId> 
           <version>5.7.0</version> 
           <type>gz</type> 
           <overWrite>true</overWrite> 
           <outputDirectory>${project.build.directory}</outputDirectory> 
          </artifactItem> 
          </artifactItems> 
          <!-- other configurations here --> 
         </configuration> 
         </execution> 
        </executions> 
        </plugin> 
    
    関連する問題