我不確定您如何實際管理bintray上的p2存儲庫?您通常上傳的所有內容都必須與版本和軟件包相關聯,但我們需要一種方法來將某些文件存儲庫的範圍與組成存儲庫的元數據或其他內容一樣。 我知道這個問題已經以某種形式得到了答覆,但我需要更多的信息,尤其是上傳存儲庫作用域的東西的規則是什麼,它們有什麼樣的路徑必須將上傳的文件存儲在存儲庫根目錄下,以及諸如此類的東西。 我不太明白爲什麼這不正式記錄在bintray上。bintray支持p2存儲庫
回答
Bintray在存儲庫>軟件包>版本下組織工件。
關係是:。
這有一個例外 - 元數據文件。主要原因是元數據文件通常包含多個版本,因此它們無法關聯到特定版本。另一個區別是,版本化構件在發佈180天后不能被覆蓋,而元數據文件在每次發佈版本時都會發生變化。這就是爲什麼元數據文件基本上被稱爲「存儲庫範圍」的原因。請注意,Bintray通過名稱識別元數據文件 - 即用戶無法告訴Bintray哪個工件是元數據文件。除此之外,元數據文件可以上傳到任何路徑,與其他任何工件相同。
例如,在P2被認爲是以下文件名是元數據文件(我可能會錯過一些):
artifacts.xml/.jar/.xml.xz
,content.xml/.jar/.xml.xz
,compositeArtifacts.xml/.jar
,compositeContent.xml/.jar
,p2.index
。
因此,無論何時您將名爲(例如)artifacts.jar
的文件上載到Bintray的通用或maven存儲庫,都會將其作爲元數據文件進行處理。
另一點需要注意的是,繼續上面的解釋 - 當您上傳版本化的工件時,您必須指定它應該關聯的包和版本。而當你上傳一個元數據文件(並且Bintray再次以它的名字標識它)時,Bintray並不期望包和版本。
Bintray有幾個選項來指定上傳的REST API的封裝和版本:
- 在URL路徑:
PUT /content/:subject/:repo/:package/:version/:file_path
(注意在URL中:package/:version
參數) - 在標題:
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
對於元數據文件,在第二&第三選項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
- 1. P2存儲庫聚合器
- 2. org.eclipse.test包的P2存儲庫
- 3. Tycho忽略p2存儲庫
- 4. bintray存儲庫是免費的嗎?
- 5. 如何搜索Eclipse P2存儲庫?
- 6. SonarQube P2存儲庫已經永久
- 7. 飛行路線的P2存儲庫
- 8. 禁止獲取p2存儲庫索引
- 9. pluginPath和依賴遠程P2存儲庫
- 10. Azure存儲庫是否支持.NETStandard 1.5?
- 11. Gitolite支持「公共存儲庫」權限?
- 12. 爲Android Studio安裝支持存儲庫
- 13. tycho-p2-repository-plugin失敗,並顯示「未爲p2存儲庫指定內容」
- 14. 如何從Apache shiro庫創建p2存儲庫
- 15. 如何清除Eclipse p2存儲庫緩存
- 16. Bintray API訪問,用戶帳戶和存儲庫管理
- 17. 通過sbt訪問Bintray私有存儲庫
- 18. 添加Android支持庫存儲庫到Nexus
- 19. 支持庫不支持aar
- 20. 配置在P2更新存儲庫編程
- 21. 在Eclipse IDE中從Cloud p2存儲庫安裝插件
- 22. 將新的OSGI包添加到本地p2存儲庫
- 23. 如何鏡像需要身份驗證的p2存儲庫
- 24. 如何使用Maven的Eclipse p2存儲庫?
- 25. Maven tycho指向本地p2 eclipse存儲庫
- 26. 什麼是Eclipse 4.x版本的p2存儲庫URL?
- 27. 我在哪裏可以找到p2存儲庫規範?
- 28. Tycho無法連接到Eclipse p2存儲庫
- 29. 如何從現有的osgi包創建p2存儲庫?
- 30. devops - 如何從WSO2 p2存儲庫自動配置功能?
很好,但版本的文件默認放在一個版本的子文件夾嗎?所以如果我只上傳所有內容,那麼元數據文件將不會落入該版本文件夾,因此可能會破壞所有內容? –
對於Bintray,沒有默認路徑。任何文件都可以放在任何路徑下,唯一真正的要求是沒有路徑衝突。您在上傳文件時指定目標路徑(在我的'curl'示例中'$ FILEPATH')。如果您使用任何軟件包管理器,例如maven,那麼它有自己的結構要求,你應該遵循它(否則它將無法解決你的依賴關係...)。 – yinon
以及我的測試表明,如果我至少上傳了一些與ui相關的版本,使用空路徑甚至/,它會降落在版本/文件夾中,除非您更改了路徑 –