利用资源包,可以导入和导出存储库内容。 您可以使用包安装新内容、在实例之间传输内容以及备份存储库内容。
使用包管理器,您可以在AEM实例和本地文件系统之间传输包以进行开发。
包是一个zip文件,以文件系统序列化形式保存存储库内容,称为保险库序列化,它提供了易于使用和编辑的文件和文件夹表示形式。 使用过滤器定义包中包含的内容。
包还包含保险库元信息,包括过滤器定义和导入配置信息。 包中可以包含不用于包提取的其他内容属性,例如描述、可视图像或图标。 这些附加内容属性仅供内容包使用者使用和参考。
包表示生成包时内容的当前版本。 它们不包括AEM保留在存储库中的任何先前版本的内容。
为AEMas a Cloud Service应用程序创建的内容包在不可变和可变内容之间必须有一个干净的分离。 因此,包管理器只能用于管理包含内容的包。 任何代码都必须通过Cloud Manager部署。
包只能包含内容。 任何功能(例如,存储在下的内容) /apps
)必须是 使用Cloud Manager中的CI/CD管道部署。
如果用于安装包的时间超过 10 分钟,包管理器 UI 可能会返回未定义错误消息。
这不是因安装错误导致的,而是因 Cloud Service 对所有请求的超时导致的。
如果您看到此类错误,请不要重试安装。安装过程在后台正常进行。如果您重新启动安装,则多个并发导入进程可能会引入一些冲突。
有关如何管理AEMaaCS包的更多详细信息,请查看文档 部署到AEMas a Cloud Service 《部署用户指南》中的。
包管理器用于管理AEM安装中的包。 在您拥有 已分配必要的权限 您可以将包管理器用于各种操作,包括配置、生成、下载和安装包。
要创建、修改、上载和安装包,用户必须在以下节点上拥有适当的权限:
/etc/packages
授予包的权限可能会导致敏感信息泄露和数据丢失。
为了限制这些风险,强烈建议仅向特定组授予对专用子树的权限。
您可以通过三种方式访问包管理器:
http://<host>:<port>/crx/packmgr/
Package Manager分为四个主要功能区域:
单击左侧导航面板中的选项会立即筛选包列表。
单击程序包名称可展开“程序包列表”中的条目以显示有关该程序包的更多详细信息。
展开资源包详细信息时,可通过工具栏按钮对资源包执行许多操作。
下面提供了进一步的操作 更多 按钮。
程序包列表中的每个条目都有一个状态指示器,可让您一眼了解程序包的状态。 将鼠标悬停在状态上会显示工具提示,其中包含状态的详细信息。
如果包已更改或从未生成,则状态将显示为链接,以便执行快速操作以重新生成或安装包。
资源包本质上是一组过滤器,以及基于这些过滤器的存储库数据。 使用包管理器UI,您可以单击包,然后单击 编辑 按钮以查看包的详细信息,包括以下设置。
您可以编辑各种程序包设置来定义程序包说明、依赖性和提供程序详细信息等信息。
此 包设置 对话框可通过 编辑 按钮时间 创建 或 编辑 一个包裹。 进行任何更改后,单击 保存.
字段 | 描述 |
---|---|
名称 | 程序包的名称 |
组 | 要组织包,可以键入新组的名称或选择现有组 |
版本 | 用于版本的文本 |
描述 | 允许对格式进行HTML标记的包的简短描述 |
缩略图 | 与包列表一起显示的图标 |
过滤器标识要包含在包中的存储库节点。 A 筛选器定义 指定以下信息:
使用添加规则 + 按钮。 使用删除规则 - 按钮。
规则会根据其顺序进行应用,以便使用 向上 和 向下 箭头按钮。
过滤器可以包含零个或多个规则。 未定义规则时,包将包含根路径下的所有内容。
您可以为包定义一个或多个过滤器定义。 使用多个筛选器以包含来自多个根路径的内容。
创建过滤器时,您可以定义路径或使用正则表达式来指定要包含或排除的所有节点。
规则类型 | 描述 |
---|---|
include | 包括一个目录将包括该目录以及该目录中的所有文件和文件夹(即整个子树),但是 不会 包括指定根路径下的其他文件或文件夹。 |
排除 | 排除目录将排除该目录以及该目录中的所有文件和文件夹(即整个子树)。 |
通常,在首次定义包过滤器时都会定义包过滤器 创建包。 但是,它们也可以稍后进行编辑,之后应重新构建包以根据新的筛选器定义更新其内容。
一个包可以包含多个过滤器定义,以便可以将来自不同位置的节点轻松组合到一个包中。
字段 | 描述 | 示例/详细信息 |
---|---|---|
测试方式 | 此包的目标或与之兼容的产品名称和版本。 | AEMaaCS |
修复的问题 | 一个文本字段,用于列出与此包修复的错误的详细信息,每行一个错误 | - |
依赖于 | 列出安装时为使当前包按预期运行而必需的其他包 | groupId:name:version |
替换 | 此包替换的已弃用包的列表 | groupId:name:version |
字段 | 描述 | 示例/详细信息 |
---|---|---|
名称 | 程序包提供程序的名称 | WKND Media Group |
URL | 提供商URL | https://wknd.site |
链接 | 指向提供程序页的特定于程序包的链接 | https://wknd.site/package/ |
需要 | 定义安装包时是否有任何限制 | 管理员 — 必须仅以管理员权限安装软件包 重新启动 — 安装包后,必须重新启动AEM |
AC 处理 | 指定在导入包时如何处理包中定义的访问控制信息 | 忽略 — 在存储库中保留ACL 覆盖 — 覆盖存储库中的ACL Merge — 合并两组ACL MergePreserve — 通过添加内容中不存在的承担者的访问控制条目,将内容中的访问控制与包中提供的访问控制合并 清除 — 清除ACL |
您可以将多个屏幕截图附加到包中,以提供内容显示方式的可视表示形式。
可以对包执行许多操作。
单击 创建包.
如果您的实例具有大量包,则可能存在文件夹结构。 在这种情况下,创建新资源包之前,可以更轻松地导航到所需的目标文件夹。
在 新建包 对话框,请输入以下字段:
包名称 — 选择一个描述性名称,以帮助您(和其他人)轻松识别包的内容。
版本 — 这是一个文本字段,用于指示版本。 这会附加到包名称以形成zip文件的名称。
组 — 这是目标组(或文件夹)名称。 组可帮助您组织包。 如果该组尚不存在,则会为其创建文件夹。 如果将组名称留空,它将在主包列表中创建包。
单击 确定 以创建包。
AEM在程序包列表的顶部列出新程序包。
单击 编辑 以定义 包内容。 单击 保存 编辑完设置后。
您现在可以 生成 您的包。
创建包后不必立即构建包。 未构建的包不包含任何内容,并且仅由包的过滤器数据和其他元数据组成。
通常,构建包时也会同时构建包 创建包,但您可以稍后返回以构建或重建包。 如果存储库中的内容已更改或包过滤器已更改,则此功能会非常有用。
单击包名称,从包列表中打开包详细信息。
单击 生成. 此时会出现一个对话框,要求您确认是否确实要生成包,因为任何现有的包内容都将被覆盖。
单击确定。AEM构建资源包,并在活动列表中列出添加到资源包的所有内容。 完成AEM后,将显示一个确认消息,确认程序包已生成,(关闭对话框时)更新程序包列表信息。
将包上传到AEM后,您可以修改其设置。
您可能需要 重新生成包 以根据您所做的更改更新其内容。
构建包后,可以将其重新包装。 重新包装会更改包信息,但不更改包内容,如缩略图、描述等。
由于包的每个版本都会作为任何其他包显示在列表中,因此包管理器可以找到选定包的其他版本。
单击包名称,从包列表中打开包详细信息。
单击 更多 -> 其他版本 此时将打开一个对话框,其中包含同一包的其他版本的列表以及状态信息。
生成包后,您可以查看其内容。
单击包名称,从包列表中打开包详细信息。
要查看内容,请单击 更多 -> 目录,则包管理器会在活动日志中列出包的全部内容。
要执行安装试运行,请单击 更多 -> 测试安装 和Package Manager会在活动日志中报告结果,就像执行了安装一样。
单击包名称,从包列表中打开包详细信息。
单击 下载 按钮或包详细信息区域中包的链接文件名。
AEM会将包下载到您的计算机。
选择要将包上载到的组文件夹。
单击 上传包 按钮。
提供有关上传的包的必需信息。
单击 确定 并且将上传选定的资源包,并相应地更新资源包列表。
包内容现在存在于AEM上,但要使内容可供使用,请确保 安装包.
由于包可以修改现有内容,因此在安装之前验证这些更改通常很有用。
包管理器可以执行以下验证:
由于包不能用于在AEMaaCS中部署代码, OSGi包导入 无需验证。
检查内容
此验证检查所有JAR文件(OSGi包)的包,提取其 manifest.xml
(包含所述OSGi包所依赖的版本化依赖关系),并验证AEM实例是否以正确的版本导出所述依赖关系。
如何报告
任何无法由AEM实例满足的版本化依赖项都将在包管理器的“活动日志”中列出。
错误状态
如果不满足依赖关系,则包中具有这些依赖关系的OSGi捆绑包将不会启动。 这会导致应用程序部署中断,因为依赖未启动的OSGi捆绑包的任何内容都将无法正常运行。
错误解决
要解决由于未满足的OSGi捆绑包导致的错误,必须调整包含未满足的导入的捆绑包中的依赖项版本。
由于包不能用于在AEMaaCS中部署代码, 叠加 无需验证。
检查内容
此验证可确定正在安装的包是否包含已在目标AEM实例中覆盖的文件。
例如,假定在 /apps/sling/servlet/errorhandler/404.jsp
,一个包,其中包含 /libs/sling/servlet/errorhandler/404.jsp
,以便更改位于的现有 /libs/sling/servlet/errorhandler/404.jsp
.
如何报告
包管理器的“活动日志”中介绍了任何此类叠加。
错误状态
错误状态表示包尝试部署的文件已经覆盖,因此包中的更改将被覆盖覆盖(因此“隐藏”),并且不会生效。
错误解决
要解决此问题,中的叠加文件维护者 /apps
必须查看对中的覆盖文件所做的更改 /libs
并将所需的更改合并到叠加中( /apps
),并重新部署覆盖的文件。
如果叠加的内容已正确合并到叠加文件中,则验证机制无法进行协调。 因此,即使进行了必要的更改,此验证仍会继续报告冲突。
检查内容
此验证会检查正在添加哪些权限、如何处理这些权限(合并/替换),以及当前权限是否会受到影响。
如何报告
有关这些权限的描述,请参阅包管理器的活动日志。
错误状态
无法提供显式错误。 验证仅指示安装包是否会添加或影响任何新ACL权限。
错误解决
使用验证提供的信息,可以在CRXDE中查看受影响的节点,并根据需要在包中调整ACL。
作为最佳实践,建议软件包不要影响AEM提供的ACL,因为这可能会导致意外行为。
可以通过两种不同的方式验证包:
应始终在上传包之后但在安装包之前进行验证。
单击包名称,从包列表中打开包详细信息。
要验证包,请单击 更多 -> 验证,
在随后显示的模式对话框中,使用复选框选择验证类型,并通过单击开始验证 验证.
然后,所选验证将运行,结果显示在包管理器的活动日志中。
POST请求采用以下形式。
https://<host>:<port>/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls
此 type
参数可以是任何逗号分隔的无顺序列表,包括:
osgiPackageImports
overlays
acls
的值 type
默认为 osgiPackageImports
如果未明确传递。
使用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'
在通过POST请求进行验证时,响应将作为JSON对象发送回。
包由其过滤器定义。 您可以让包管理器将包的过滤器应用于现有存储库内容,以显示包的过滤器定义涵盖了哪些存储库内容。
单击包名称,从包列表中打开包详细信息。
单击 更多 -> 覆盖率.
服务范围详细信息列在活动日志中。
上传资源包只会将该资源包内容添加到存储库,但不可访问。 您必须安装上传的包,才能使用包的内容。
安装包可能会覆盖或删除现有内容。 仅当您确保包不会删除或覆盖您需要的内容时,才上载包。
在安装包之前,包管理器会自动创建一个快照包,其中包含将被覆盖的内容。 如果您卸载软件包,将重新安装此快照。
通过单击包名称,从包列表中打开要安装的包的包详细信息。
单击 安装 按钮或 安装 包状态中的链接。
对话框将请求确认,并允许指定其他选项。
单击 安装.
活动日志详细说明了安装进度。
安装完成并成功后,将更新包列表并键入 已安装 显示在程序包状态中。
重新安装软件包对已安装的软件包执行与以下情况下处理的软件包相同的步骤: 初始安装包。
安装包时,您可以完全放弃包管理器。 AEM可以检测放置在主机本地文件系统上特定位置的软件包,并自动上传和安装它们。
在AEM安装文件夹下,有一个 crx-quicksart
在jar旁边 license.properties
文件。 创建名为的文件夹 install
下 crx-quickstart
导致路径 <aem-home>/crx-quickstart/install
.
在此文件夹中,添加您的包。 它们将自动上传并安装到您的实例上。
上传和安装完成后,您可以在包管理器中查看包,就像使用包管理器UI安装包一样。
如果实例正在运行,则在将其添加到软件包时,将立即开始上载和安装。 install
文件夹
如果实例未运行,则将包放在 install
文件夹在启动时按字母顺序安装。
卸载软件包会将存储库的内容还原为软件包管理器在安装之前自动生成的快照。
单击包名称,从包列表中打开要卸载的包的包详细信息。
单击 更多 -> 卸载,从存储库中删除此包的内容。
此时将显示一个对话框,其中将请求确认并列出所有正在进行的更改。
将删除资源包并应用快照。 该过程的进度显示在活动日志中。
删除包只会从包管理器中删除其详细信息。 如果已经安装了此包,则不会删除已安装的内容。
通过单击程序包名称,打开要从程序包列表中删除的程序包的程序包详细信息。
AEM会要求您确认是否删除软件包。 单击 确定 以确认删除。
资源包信息将被删除,详细信息将在活动日志中报告。
复制包的内容以将其安装在发布实例上。
通过单击包名称,打开要从包列表中复制的包的包详细信息。
单击 更多 -> 复制.
将复制资源包,并在活动日志中报告详细信息。
AEM包可用于在AEMaaCS环境中创建和共享内容。
Software Distribution 提供了可在本地开发AEM SDK中使用的AEM包。 在Software Distribution中提供的AEM包不得安装在AEMaaCS云环境中,除非经Adobe支持明确批准。
欲知更多信息,请查看 Software Distribution文档.