如何使用包

包允许导入和导出存储库内容。 例如,您可以使用包安装新功能、在实例之间传输内容以及备份存储库内容。

可以从以下页面访问和/或维护包:

  • 包管理器,用于管理本地AEM实例中的包。

  • 软件分发,一个集中服务器,它既包含公开可用的包,又包含您公司的私有包。公共包可包含修补程序、新功能、文档等。

可以在包管理器、软件分发和文件系统之间传输包。

什么是包?

包是一个zip文件,其中以文件系统序列化(称为“保管库”序列化)的形式存放存储库内容。 这为文件和文件夹提供了易于使用和编辑的表示形式。

包包括使用过滤器选择的内容(包括页面内容和项目相关内容)。

包中还包含保管库元信息,包括过滤器定义和导入配置信息。 包中可包含其他内容属性(不用于包提取),如描述、可视图像或图标;这些属性仅用于内容包使用者和信息用途。

NOTE

包代表构建包时内容的当前版本。 它们不包括AEM保留在存储库中的任何旧版本的内容。

您可以对包或对包执行以下操作:

  • 创建新包;根据需要定义包设置和过滤器
  • 预览包内容(生成前)
  • 构建包
  • 视图包信息
  • 视图包内容(构建后)
  • 修改现有包的定义
  • 重建现有包
  • 重新包装包
  • 将包从AEM下载到文件系统
  • 将包从文件系统上传到本地AEM实例
  • 安装前验证包内容
  • 执行练习安装
  • 安装包(AEM上传后不自动安装包)
  • 删除包
  • 从软件分发库下载包(如修补程序)
  • 将包上传到软件分发库的公司内部部分

包信息

包定义由各种类型的信息组成:

包设置

您可以编辑各种“包设置”来定义包描述、相关错误、依赖关系和提供程序信息等方面。

创建编辑包时,包设置​对话框可通过​编辑​按钮使用,并提供三个用于配置的选项卡。 进行任何更改后,单击​确定​以保存这些更改。

包编辑

字段 描述
名称 包的名称。
要添加包的组的名称,用于组织包。 键入新用户组的名称,或选择现有用户组。
版本 用于自定义版本的文本。
描述 包的简要说明。 HTML标记可用于格式化。
缩略图 随包列表一起显示的图标。 单击“浏览”以选择本地文件。

chlimage_1-108

字段 描述 格式/示例
名称 提供者的名称。 AEMGeometrixx
URL 提供程序的URL。 https://www.aem-geometrixx.com
链接 指向提供程序页面的包特定链接。 https://www.aem-geometrixx.com/mypackage.html
需要
  • 管理员:选择何时包只能由具有管理员权限的帐户安装。
  • 重新启动:选择安装包后需要重新启动服务器的时间。
AC 处理

指定在导入包时如何处理包中定义的访问控制信息:

  • 忽略
  • 覆盖
  • 合并
  • 清除
  • MergePreserve

默认值为忽略

  • 忽略 -保留存储库中的ACL
  • 覆盖 -覆盖存储库中的ACL
  • 合并 -合并两组ACL
  • 清除 -清除ACL
  • 合并保留 -通过添加内容中不存在的承担者的访问控制项,将内容中的访问控制与包中提供的合并

包依赖

字段 描述 格式/示例
已通过 此包的目标产品名称和版本或与之兼容的版本。 AEM6
修复的错误/问题 允许您列表此包修复的错误的详细信息的文本字段。 请在单独的行上列表每个错误。 bug-nr摘要
依赖于 列表依赖关系信息,当需要其他包时需要遵守这些信息才能让当前包按预期运行。 使用修补程序时,此字段很重要。 groupId:name:version
替换 替换此包的已弃用包的列表。 在安装之前,请检查此包是否包含来自废弃包的所有必要内容,以便不覆盖任何内容。 groupId:name:version

包过滤器

过滤器标识要包含在包中的存储库节点。 过滤器定义​指定以下信息:

  • 要包含的内容的​根路径
  • 括或排除根路径下的特定节点的规则。

过滤器可以包含零个或多个规则。 未定义规则时,包包含根路径下的所有内容。

您可以为包定义一个或多个筛选器定义。 使用多个筛选器来包含来自多个根路径的内容。

chlimage_1-109

下表介绍了这些规则并提供了示例:

规则类型 描述 示例
包括 您可以定义路径,或使用常规表达式指定要包括的所有节点。

包含目录将:
  • 包括该目录中的所有文件和文件夹(即整个子树)
  • 包括指定根路径下的其他文件或文件夹
/libs/sling/install(/)*)?
排除 可以指定路径或使用常规表达式来指定要排除的所有节点。

排除目录将排除该目 录以及该目录中的所有文件和文件夹(即整个子树)。
/libs/wcm/foundation/components(/)*)?
NOTE

一个包可以包含多个筛选器定义,以便将来自不同位置的节点轻松组合到一个包中。

包过滤器通常在您首次创建包时进行定义,但以后也可以编辑它们(之后应重建包)。

包屏幕截图

您可以将屏幕截图附加到包中,以直观呈现内容的外观;例如,提供新功能的截屏。

包图标

您还可以将图标附加到包中,以快速参考包中包含的内容的可视化演示。 然后,此列表会显示在包中,它可以帮助您轻松识别包或包类别。

由于包中可以包含图标,因此正式包使用以下约定:

NOTE

要避免混淆,请为包使用描述性图标,而不要使用其中一个官方图标。

正式修补程序包:

正式的AEM安装或扩展包:

正式功能包:

包管理器

包管理器管理本地AEM安装上的包。 在为分配了必要权限后,您可以使用包管理器执行各种操作,包括配置、构建、下载和安装包。 要配置的关键元素包括:

使用包管理器所需的权限

要授予用户创建、修改、上传和安装包的权利,您必须在以下位置为他们授予适当的权限:

  • /etc/packages (删除除外)
  • 包含包内容的节点

有关更改权限的说明,请参阅设置权限

创建新包

要创建新包定义,请执行以下操作:

  1. 在AEM欢迎屏幕上,单击​(或从​工具​控制台多次单击​)。

  2. 然后选择​包管理器

  3. 单击​创建包

    NOTE

    如果实例包含大量包,则可能存在文件夹结构,因此,您可以在创建新包之前导航到所需的目标文件夹。

  4. 在对话框中:

    packagesnew

    输入:

    • 组名称

      目标组(或文件夹)名称。 组旨在帮助您组织包。

      如果组尚不存在,则将为其创建文件夹。 如果将组名称留空,它将在主包列表(“主页”>“包”)中创建包。

    • 包名称

      新包的名称。 选择一个描述性名称,帮助您(和其他人)轻松识别包的内容。

    • 版本

      用于指示版本的文本字段。 这将附加到包名称中,以构成zip文件的名称。
      单击​确定​以创建包。

  5. AEM列表相应组文件夹中的新包。

    packageitem

    单击要打开的图标或包名称。

    已点击包

    NOTE

    如果需要,您可以在以后的阶段返回此页。

  6. 单击​编辑​以编辑包设置

    在此,您可以添加信息和/或定义某些设置;例如,这包括说明、图标、相关错误和添加提供程序详细信息。

    编辑完设置后,单击​确定

  7. 根据需要将​截屏​添加到包中。 创建包时有一个实例可用,如果需要,可使用Sidekick中的​包屏幕截图​添加更多实例。

    通过多次单击​屏幕截图​区域中的图像组件,添加图像,然后单击​确定,添加实际图像。

  8. 定义​包过滤器,方法是从Sidekick中拖动​过滤器定义​的实例,然后多次单击以打开进行编辑:

    包装过滤器

    指定:

    • 根路
      径要打包的内容;这可以是子树的根。


    • 则规则是可选的;对于简单的包定义,无需指定包括或排除规则。

      如果需要,您可以定义​Include​或​Exclude​规则来准确定义包内容。

      使用​+​符号添加规则,或者使用​-​符号删除规则。 根据规则的顺序应用规则,以便使用​Up​和​Down​按钮根据需要定位规则。
      然后单击​确定​以保存过滤器。

    NOTE

    您可以根据需要使用任意数量的筛选器定义,但必须谨慎确保它们不发生冲突。 使用​预览​确认包内容。

  9. 要确认包将包含什么,您可以使用​预览。 这将执行构建过程的练习,并列表实际构建包时将添加到包的所有内容。

  10. 您现在可以构建您的包。

    NOTE

    此时不强制构建包,可在以后某个时间完成。

构建包

通常,在创建包定义的同时构建包,但您可以在以后的某个时间返回构建或重建包。 如果存储库中的内容已更改,则此功能可能很有用。

NOTE

在构建包之前,预览包的内容可能会很有用。 要执行此操作,请单击​预览

  1. 从​包管理器​打开包定义(单击包图标或名称)。

  2. 单击​Build。 将显示一个对话框,要求您确认是否要构建包。

    NOTE

    当您重建包时,这尤其重要,因为包内容将被覆盖。

  3. 单击​确定。AEM将构建包,并按照其方式列出添加到包的所有内容。 完成AEM后,将显示确认,确认已构建包,并(关闭对话框时)更新包列表信息。

重新打包

构建包后,可以根据需要重新打包。

重新打包会更改包信息- 而不更改​包内容。 包信息是缩略图、说明等,换言之,您可以通过​包设置​对话框编辑的一切(要打开此信息,请单击​编辑)。

重新包装的主要用例是准备包装时。 例如,您可能有一个现有包,并决定与他人共享它。 要添加缩略图并添加说明。 您不必使用其所有功能重新创建整个包(可能需要一些时间,并且有可能使包不再与原始包相同),而是重新包装它,只需添加缩略图和说明。

  1. 从​包管理器​打开包定义(单击包图标或名称)。

  2. 单击​编辑​并根据需要更新​包设置。 单击​确定​进行保存。

  3. 单击​重新打包,将显示一个对话框要求确认。

查看和编辑包信息

要视图或编辑有关包定义的信息:

  1. 在包管理器中,导航到要视图的包。

  2. 单击要视图的包的包图标。 此操作将打开包页面,其中列出有关包定义的信息:

    packagesiteclicked-1

    NOTE

    您还可以通过此页编辑并对包执行某些操作。

    可用的按钮取决于包是否已构建。

  3. 如果已构建包,请单击​内容,将打开一个窗口并列表包的整个内容:

查看包内容和测试安装

生成包后,您可以视图内容:

  1. 在包管理器中,导航到要视图的包。

  2. 单击要视图的包的包图标。 这将打开包页面,其中列出有关包定义的信息。

  3. 要视图内容,请单击​内容,将打开一个窗口并列表包的整个内容:

    包内容

  4. 要执行安装的练习,请单击“测试安装”​确认操作后,将打开一个窗口并列表结果,就像执行了安装一样:

    packagestinstall

将包下载到文件系统

本节介绍如何使用​包管理器​将包从AEM下载到文件系统。

  1. 在AEM欢迎屏幕上,单击​,然后选择​包管理器

  2. 导航到要下载的包。

    包下载

  3. 单击要下载的包的zip文件名称(带下划线)所形成的链接;例如export-for-offline.zip

    AEM将软件包下载到您的计算机(使用标准浏览器下载对话框)。

从文件系统上传包

包上传允许您从文件系统将包上传到AEM包管理器。
要上传包,请执行以下操作:

  1. 导航到​包管理器。 然后,转到要将包上载到的组文件夹。

    包上载按钮

  2. 单击​上传包

    packagesuploaddialog

    • 文件

      您可以直接键入文件名,或使用​浏览……​对话框,从本地文件系统中选择所需的包(选择后单击​确定)。

    • 强制上传

      如果具有此名称的包已存在,则可以单击此按钮强制上传(并覆盖现有包)。
      单击​确定,以上传新包并列在包管理器列表中。

    NOTE

    要使内容可供AEM使用,请确保安装软件包

正在验证包

在安装包之前,您可能希望验证其内容。 由于包可以修改/apps和/或添加、修改和删除ACL下叠加的文件,因此在安装前验证这些更改通常很有用。

验证选项

验证机制可以检查包的以下特性:

  • OSGi包导入
  • 叠加
  • ACL

这些选项详见下文。

  • 验证 OSGi 包的导入情况

    检查的内容

    此验证检查包中所有JAR文件(OSGi捆绑包),提取其manifest.xml(其中包含所述OSGi捆绑包所依赖的版本化依赖关系),并验证AEM实例用正确的版本导出所述依赖关系。

    报告方式

    AEM实例无法满足的任何版本化依赖关系列在包管理器的​活动日志​中。

    错误状态

    如果依赖项不满足,则包中包含这些依赖项的OSGi捆绑包将不开始。 这会导致应用程序部署中断,因为任何依赖未启动的OSGi捆绑包的部署都将无法正常工作。

    错误解决

    要解决由于未满足要求的OSGi捆绑包导致的错误,需要调整捆绑包中具有未满足要求的导入的依赖关系版本。

  • 验证覆盖

    检查的内容

    此验证确定要安装的包是否包含已覆盖到目标AEM实例中的文件。

    例如,给定/apps/sling/servlet/errorhandler/404.jsp处的现有叠加,即包含/libs/sling/servlet/errorhandler/404.jsp的包,这样它将更改/libs/sling/servlet/errorhandler/404.jsp处的现有文件。

    报告方式

    包管理器的​活动日志​中介绍了任何此类叠加。

    错误状态

    错误状态意味着包正在尝试部署已覆盖的文件,因此包中的更改将被叠加覆盖(从而“隐藏”),而不会生效。

    错误解决

    要解决此问题,/apps中叠加文件的维护者必须查看/libs中叠加文件的更改,并根据需要将更改合并到叠加中(/apps),然后重新部署叠加文件。

    NOTE

    请注意,如果叠加文件中正确并入了叠加内容,验证机制将无法进行协调。 因此,即使进行了必要的更改,此验证仍会继续报告冲突。

  • 验证 ACL

    检查的内容

    此验证检查正在添加哪些权限,如何处理这些权限(合并/替换),以及当前权限是否受到影响。

    报告方式

    这些权限在包管理器的​活动日志​中有介绍。

    错误状态

    不能提供显式错误。 验证只指示是否会添加或影响任何新的ACL权限。

    错误解决

    使用验证提供的信息,可以在CRXDE中查看受影响的节点,并根据需要在包中调整ACL。

    CAUTION

    作为最佳实践,建议软件包不要影响AEM提供的ACL,因为这可能导致意外的产品行为。

正在执行验证

可以通过两种不同的方式验证包:

  • 通过包管理器UI
  • 通过HTTPPOST请求(如与cURL一起)
NOTE

上传包后但安装包之前,应始终进行验证。

通过包管理器进行包验证

  1. 打开https://<server>:<port>/crx/packmgr的包管理器

  2. 在列表中选择包,然后从标题中选择​更多​下拉列表,然后从下拉菜单中选择​验证

    NOTE

    这应在上传内容包后完成,但在安装该包之前完成。

  3. 在随后出现的模态对话框中,使用复选框选择验证类型,并通过单击​验证​开始验证。 或者,单击​取消

  4. 然后运行所选验证。 结果显示在包管理器的活动日志中。

通过HTTPPOST请求进行包验证

POST请求采用以下形式。

https://<host>:<port>/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls
NOTE

type参数可以是以逗号分隔的无序列表,包括:

  • osgiPackageImports
  • overlays
  • acls

如果未传递,type的值将默认为osgiPackageImports

以下是使用cURL执行包验证的示例。

  1. 如果使用cURL,则执行类似于以下语句:

    curl -v -X POST --user admin:admin -F file=@/Users/SomeGuy/Desktop/core.wcm.components.all-1.1.0.zip 'http://localhost:4502/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls'
    
  2. 将运行所请求的验证,并将响应作为JSON对象发回。

NOTE

对验证HTTPPOST请求的响应将是JSON对象,验证结果为。

安装包

上传包后,您需要安装该内容。 要安装包内容并使其正常工作,它必须同时具备以下两种功能:

CAUTION

安装包可覆盖或删除现有内容。 仅在您确定不删除或覆盖您需要的内容时上传包。

要查看包的内容或影响,您可以:

  • 无需修改任何内容即可对包执行测试安装:
    打开包(单击包图标或名称),然后单击​测试安装

  • 请参阅包内容列表:
    打开包,然后单击​内容

NOTE

在安装包之前,会立即创建一个快照包,以包含将被覆盖的内容。

卸载包时,将重新安装此快照。

CAUTION

如果您正在安装数字资产,则必须:

  • 首先,取消激活WorkflowLauncher。
    使用OSGi控制台的“组件”菜单选项取消激活com.day.cq.workflow.launcher.impl.WorkflowLauncherImpl

  • 然后,在安装完成后,重新激活WorkflowLauncher。

取消激活WorkflowLauncher可确保资产导入程序框架在安装时不会(无意中)操作资产。

  1. 在“包管理器”中,导航到要安装的包。

    安装​按钮显示在尚未安装的包的一侧。

    NOTE

    或者,也可以通过单击软件包的图标打开软件包,以访问该软件包的​安装​按钮。

  2. 单击​安装​以开始安装。 对话框将请求确认并列表所有正在进行的更改。 完成后,单击对话框上的​关闭

    安装软件包后,软件包旁边将显示“已安装”字样。

基于文件系统的上传和安装

有一种替代方法可将包上传并安装到实例。 在文件系统中,您的jar和license.properties文件旁边有一个crx-quicksart文件夹。 您需要在crx-quickstart下创建一个名为install的文件夹。 然后您将拥有这样的功能:<aem_home>/crx-quickstart/install

在此安装文件夹中,您可以直接添加包。 它们将自动上传并安装在您的实例上。 完成后,您可以在包管理器中看到包。

如果实例正在运行,则向install文件夹添加包将直接启动上传和实例上的安装。 如果实例未运行,您放入install文件夹的包将在启动时按字母顺序安装。

NOTE

您还可以在首次启动实例之前执行此操作。 为此,您需要手动创建crx-quickstart文件夹,在文件夹下创建install文件夹,然后将包放在该文件夹中。 然后,当您首次启动实例时,将按字母顺序安装包。

正在卸载包

AEM允许您卸载包。 此操作会还原受在安装包之前立即创建的快照影响的存储库内容。

NOTE

安装后,将创建一个包含将被覆盖的内容的快照包。

卸载该包时,将重新安装该包。

  1. 在包管理器中,导航到要卸载的包。
  2. 单击要卸载的包的包图标。
  3. 单击​卸载​可从存储库中删除此包的内容。 对话框将请求确认并列表所有正在进行的更改。 完成后,单击对话框上的​关闭

删除包

要从“包管理器”列表中删除包,请执行以下操作:

NOTE

已从包中安装的文件/节点​​被删除。

  1. 在​工具​控制台中,展开​软件包​文件夹,在右窗格中显示软件包。

  2. 单击要删除的包,以突出显示它,然后:

    • 单击工具栏菜单中的​删除
    • 右键单击并选择​删除

    包删除

  3. AEM要求您确认是否要删除该包。 单击​确定​以确认删除。

CAUTION

如果此包已安装,则​已安装​的内容将​​被删除。

正在复制包

复制包的内容以将其安装到发布实例:

  1. 在​包管理器​中,导航到要复制的包。

  2. 单击要复制的包的图标或名称以展开它。

  3. 在工具栏的​更多​下拉菜单中,选择​复制

包共享

包共享是公开提供的用于共享内容包的中央服务器。

它已被软件分发替换。

软件分发

件分发是新的用户界面,旨在简化AEM包的搜索和下载。

有关详细信息,请查看软件分发文档

CAUTION

目前,AEM包管理器在软件分发中不可用,请将包下载到本地磁盘。

在此页面上