2017-07-18 5 views
0

私はbintrayで実際にp2リポジトリをどのように管理していますか?通常アップロードするものはすべてバージョンとパッケージに関連付ける必要がありますが、いくつかのファイルリポジトリの範囲を作成リポジトリのメタデータのようにする必要があります。 私はその質問が既に何らかの形で回答されていることを知っていますが、私はもっと情報が必要です、特にリポジトリスコープ付きのものをアップロードするルール、アップロードされたファイルがリポジトリのルートにあるかどうかなど、もの。 なぜこれがbintrayで正式に文書化されていないのかよくわかりません。p2リポジトリ用のbintrayのサポート

答えて

0

Bintrayは、リポジトリ>パッケージ>バージョンでアーティファクトを整理します。
関係式は、​​です。
メタデータファイルには例外が1つあります。主な理由は、メタデータファイルには通常複数のバージョンが含まれているため、特定のバージョンに関連付けることはできません。もう1つの違いは、バージョニングされた成果物は、出版されてから180日後に上書きすることはできませんが、メタデータファイルは、バージョンがリリースされるたびに変更されることが予想されます。このため、メタデータファイルは基本的に「リポジトリスコープ」と呼ばれています。 Bintrayは名前でメタデータファイルを識別します。つまり、ユーザーはBintrayにメタデータファイルであるアーティファクトを伝えることはできません。それ以外のメタデータファイルは、他のアーティファクトと同じように、任意のパスにアップロードできます。
artifacts.xml/.jar/.xml.xzcontent.xml/.jar/.xml.xzcompositeArtifacts.xml/.jarcompositeContent.xml/.jarp2.index

は例えば、P2に考慮される以下のファイル名は、メタデータファイル(私はいくつかを見逃している可能性があります)です。
Bintrayの汎用リポジトリまたはMavenリポジトリに(例えば)artifacts.jarという名前のファイルをアップロードすると、そのファイルはメタデータファイルとして処理されます。

上記の説明を続けると、バージョン管理された成果物をアップロードするときに、関連付けられるパッケージとバージョンを指定する必要があります。一方、メタデータファイルをアップロードすると(Bintrayはその名前で識別します)、Bintrayはパッケージとバージョンを期待していません。
PUT /content/:subject/:repo/:package/:version/:file_path
(URLで:package/:versionパラメータに注意してください)では

  • :URLパスで

    • Bintrayは、アップロードREST APIのパッケージとバージョンを指定するには、いくつかのオプションがありますヘッダ:
      X-Bintray-Package: :package
      X-Bintray-Version: :version
      PUT /content/:subject/:repo/:file_path
      (URLには:package/:versionパラメータが存在しないに注意してください)URLの行列パラメータとして

    • :メタデータファイルの場合
      PUT /content/:subject/:repo/:file_path;bt_package=:package;bt_version=:version

    は、二& 3番目のオプションでBintrayは、パッケージとバージョンを無視します。最初のオプションでは、Bintrayはパッケージとバージョンをパスの一部として扱うので、bintrayの結果パスにはそれらが含まれます(あなたが意図したものではありません...)

    結論:
    長い話を短くするために - BintrayでP2リポジトリにアーティファクトをアップロードするための最良の方法は、第二または第三アップロードオプションを枯れ使用しています。このように、バージョン管理されたファイルの場合、パッケージとバージョンが関連付けられます。メタデータファイルの場合、パッケージとバージョンは無視され、ファイルは正しいターゲットパスにアップロードされます。例えば
    cURLを使用して:ここで

    curl -u$BT_USER:$BT_PASS -XPUT -T <file-to-upload> "https://api.bintray.com/content/$BT_OWNER/$BT_REPO/$FILEPATH" -H "X-Bintray-Package: $BT_PKG" -H "X-Bintray-Version: $BT_VER" 
    

    は非常に良いブログ記事です:Publish an Eclipse P2 Composite Repository on Bintray

    HTH、
    Yinon

  • +0

    もなく、ファイルは、デフォルトでは、バージョンのサブフォルダの右側に配置されているバージョン管理?だから私はすべてをアップロードすると、メタデータファイルは、そのバージョン化されたフォルダに着陸しない、おそらくすべてを壊す? –

    +0

    Bintrayには既定のパスはありません。どんなファイルも任意のパスの下に置くことができますが、唯一の実際の要件はパスの競合ではありません。ファイルをアップロードするときにターゲットパスを指定します( 'curl'の例では' $ FILEPATH')。任意のパッケージマネージャを使用している場合、たとえばそれが独自の構造要件を持っていて、それに従うべきです(そうしなければ、あなたの依存関係を解決することはできません...)。 – yinon

    +0

    私のテストでは、あなたがパスを変更しないかぎり、少なくとも空きのパスか/でバージョンに何かをアップロードした場合、バージョン/フォルダに入ってしまったことがわかりました –

    関連する問題