如何使用包

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

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

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

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

可以在包管理器、包共享和文件系统之间传输包。

什么是包?

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

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

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

注意

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

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

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

包信息

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

包设置

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

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

包编辑

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

chlimage_1-344

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

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

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

默认值为忽略

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

包依赖

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

包过滤器

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

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

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

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

chlimage_1-345

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

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

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

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

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

包过滤器最常在您首次创建包时定义,但稍后也可以编辑(在此之后应重建包)。

包屏幕截图

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

包图标

您还可以向包附加一个图标,以提供包包含内容的快速参考可视表示形式。 然后,该列表会显示在包中,并有助于您轻松识别包或包的类。

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

注意

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

正式的修补程序包:

正式AEM安装或扩展包:

正式功能包:

包管理器

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

使用包管理器所需的权限

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

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

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

创建新包

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

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

  2. 然后选择​包管理器

  3. 单击​创建包

    注意

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

  4. 在对话框中:

    packagesnew

    输入:

    • 组名称

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

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

    • 包名称

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

    • 版本号

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

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

    packagesitem

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

    packagesitemclicked

    注意

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

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

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

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

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

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

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

    packagesfilter

    指定:

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

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

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

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

    注意

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

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

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

    注意

    在此时构建包并非强制性的,可以在以后的时间完成。

构建包

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

注意

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

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

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

    注意

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

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

重新打包

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

重新打包会更改包信息 — 而不更改​包内容。 包信息是缩略图、说明等,换句话说,您可以使用​“包设置”​对话框(要打开此对话框,请单击​“编辑”)编辑的所有内容。

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

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

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

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

查看和编辑包信息

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

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

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

    packagesiteclicked-1

    注意

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

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

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

查看包内容和测试安装

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

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

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

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

    包内容

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

    packagestinstall

将包下载到文件系统

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

注意

请参阅包共享,了解有关从公共区域和公司内部包共享区域下载修补程序、功能包和包的信息。

从包共享中,您可以:

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

  2. 导航到要下载的包。

    packagesdownload

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

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

从文件系统上载包

包上传允许您将包从文件系统上传到AEM包管理器。

注意

请参阅将包上传到公司内部包共享以将包上传到公司的包共享专用区域。

要上传包,请执行以下操作:

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

    packagesuploadbutton

  2. 单击​上载包

    packesuploadalog

    • 文件

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

    • 强制上传

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

    注意

    要使内容可供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)中,然后重新部署叠加文件。

    注意

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

  • 验证 ACL

    已检查的内容

    此验证会检查正在添加的权限、处理权限的方式(合并/替换),以及当前权限是否受到影响。

    报告方式

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

    错误状态

    不能提供显式错误。 验证只会指示安装包后是添加还是影响任何新ACL权限。

    错误解决

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

    注意

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

正在执行验证

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

  • 通过包管理器UI
  • 通过HTTPPOST请求(如与cURL)
注意

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

通过包管理器进行包验证

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

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

    注意

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

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

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

通过HTTPPOST请求进行包验证

POST请求采用以下形式。

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

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对象发回。

注意

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

安装程序包

上载包后,需要安装内容。 要安装包内容并使其正常工作,它必须同时具备以下两项:

  • 加载到AEM(从您的文件系统🔗或从包共享](#downloading-and-installing-packages-from-package-share)下载的中上载的[)

  • 已安装

注意

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

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

  • 在不修改任何内容的情况下,对包执行测试安装:
    打开包(单击包图标或名称),然后单击​测试安装

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

注意

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

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

注意

如果您要安装数字资产,您必须:

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

  • 接下来,在安装完成后重新激活WorkflowLauncher。

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

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

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

    注意

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

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

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

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

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

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

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

注意

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

正在卸载程序包

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

注意

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

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

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

正在删除程序包

要从“包管理器”列表中删除包:

注意

已安装的文件/节点从包中删除​**,而不是**。

  1. 在​Tools​控制台中,展开​Packages​文件夹,在右侧窗格中显示您的包。

  2. 单击要删除的包,以突出显示它,然后执行以下任一操作:

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

    包删除

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

注意

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

正在复制程序包

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

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

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

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

包共享

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

它已被软件分发替换。

软件分发

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

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

注意

AEM包管理器当前不可用于软件分发。 将包下载到本地磁盘。

On this page

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now