12.3. 套件描述符概述

Section 12.2, “Assembly基础”中介绍的标准套件描述符不够的时候,你就需要自定义你自己的套件描述符。套件描述符是一个定义了套件结构和内容的XML文档。

套件描述符图解

Figure 12.1. 套件描述符图解


套件描述符包含五个主要的小节,以及两个额外的小节:一个叫做组件描述符,用来指定标准的套件描述符片段,另一个用来指定自定义的文件处理类,以帮助管理套件生产过程。

基本配置

该小节包含了所有套件需要的信息,还有一些关于整个归档格式的额外配置选项,如所有归档项使用的基础路径。为了使套件描述符有效,你必须至少指定套件id,至少一种格式,以及至少一个如上所示的其它小节。

文件信息

套件描述符这个片段中的配置应用于文件系统中该项目目录结构中特定的文件。这个片段包含了两个主要部分:filesfileSets。你可以使用filesfileSets来控制套件中文件的权限,从套件中包含或者排除文件。

依赖信息

几乎任意大小的所有的项目都依赖于其它项目。在创建分发归档的时候,项目依赖通常被包含在最终产品套件中。该小节管理依赖被包含在最终归档中的方式。该小节允许你依赖是否被拆解,是直接添加到lib/目录中,还是映射至新的文件名。该小节也允许你控制套件中依赖的权限,以及哪些依赖被包含在套件中。

仓库信息

有时,将构建一个项目必要的所有构件分隔开来很有用,它们是否是依赖构件,依赖构件的POM,或者甚至是一个项目本身POM的祖先(你的父POM,父POM的父POM,等等)。该小节允许你通过各种配置选项,在套件中包含一个或者多个构件仓库目录,然而Assembly插件没有能力引入在这些仓库中的插件构件。

模块信息

套件描述符的这一小节允许你在装备自定义归档的时候利用父子关系,以包含你项目模块的源文件,构件,和依赖。这是套件描述符中最复杂的小节,因为它允许你以两种方式操作模块和子模块:以一系列fileSets(通过sources小节)或者以一系列dependencySets(通过binaries小节)。