nexus 文檔-repository Manager概念-1、Components, Repositories, and Repository Formats

Components

Component是類似於庫或框架的資源,在運行時、集成或單元測試執行時用作軟件應用程序的一部分,或作爲構建過程的一部分。它可以是一個完整的應用程序,也可以是一個像圖像一樣的靜態資源。通常,這些組件是各種文件的歸檔,包括:

  • 類文件中的Java字節碼
  • C對象文件
  • 文本文件,如屬性文件,XML文件,JavaScript代碼,HTML, CSS
  • 二進制文件,如圖像,PDF文件,聲音文件

使用多種形式歸檔:

  • Java JAR、WAR、EAR格式
  • 普通ZIP或.tar.gz文件
  • 其他包格式,如NuGet包,Ruby gems, NPM包
  • 可執行格式,如.exe或.sh文件,Android APK文件,各種安裝程序格式

組件可以由多個嵌套組件本身組成。例如,考慮一個打包爲WAR組件的Java web應用程序。它包含許多JAR組件和許多JavaScript庫。所有這些都是在其他上下文中獨立的組件,並且恰好包含在WAR組件中。

組件提供了所有的構建塊和特性,允許開發團隊通過組裝它們並添加自己的業務相關組件來創建功能全面、功能強大的應用程序,從而創建功能強大的應用程序。

不同的工具鏈中,組件被稱爲artifact、package、bundle、archive和其他術語。概念和思想保持不變,組成部分用作通用術語。

組件由一組特定的值(座標)標識。這些座標的一般集合是組、名稱和版本的用法。這些座標的名稱和用法隨使用的工具鏈而變化。組件還可以作爲進一步元數據的錨。

Assets

Assets是所有這些元數據的補充材料。實際的archive 文件是與組件相關聯的asset。許多格式都有Component到Asset的一對一映射。

然而,更復雜的格式有許多與組件相關聯的資產。例如,Maven存儲庫中的典型JAR組件至少是由POM和JAR文件定義的——它們都構成屬於相同組件的獨立資產。其他文件(如JavaDoc或源JAR文件)是屬於同一組件的資產。

另一方面,Docker格式爲資產提供唯一的標識符,並將它們稱爲Docker層。這些資產可以用於不同的組件——Docker映像。例如,Docker層可以是多個Docker映像引用的特定操作系統。

組件庫

存在各種各樣的組件,而且開源社區和私有供應商不斷地創建更多的組件。每天都有在不同平臺上用不同語言編寫的庫和框架用於應用程序開發。通過將多個組件的特性與您自己的包含應用程序代碼的自定義組件相結合來爲特定域創建應用程序,構建應用程序已成爲一種默認模式。

爲了簡化組件的使用,將它們聚合爲組件的集合。這些被稱爲存儲庫,通常在internet上作爲服務提供。在不同的平臺上,registry等術語用於相同的概念。
這類資料庫的例子如下:

  • Central Repository, also known as Maven Central
  • NuGet Gallery
  • RubyGems.org
  • npmjs.org

這些資料庫中的組件可由下列多種工具訪問:

  • package managers like npm, nuget, gem

  • build tools such as Maven, Gradle, rake, grunt

  • IDE’s such as Eclipse, IntelliJ, Visual Studio

庫格式

不同的存儲庫使用不同的技術來存儲和向客戶端工具公開其中的組件。這定義了存儲庫格式,因此與與存儲庫交互的工具密切相關。

Maven存儲庫格式依賴於由組件的標識符定義的特定目錄結構和用於元數據的大量XML格式文件。組件交互是通過簡單的HTTP命令和一些額外的與XML文件的自定義交互來執行的。

其他存儲庫格式使用數據庫進行存儲和REST API交互,或者使用不同的目錄結構和特定格式的文件進行元數據交互。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章