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交互,或者使用不同的目录结构和特定格式的文件进行元数据交互。

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