包允许导入和导出存储库内容。 例如,您可以使用包安装新功能、在实例之间传输内容以及备份存储库内容。
可以从以下页面访问和/或维护包:
可以在包管理器、软件分发和文件系统之间传输包。
包是一个zip文件,其中以文件系统序列化(称为“保管库”序列化)的形式存放存储库内容。 这为文件和文件夹提供了易于使用和编辑的表示形式。
包包括使用过滤器选择的内容(包括页面内容和项目相关内容)。
包中还包含保管库元信息,包括过滤器定义和导入配置信息。 包中可包含其他内容属性(不用于包提取),如描述、可视图像或图标;这些属性仅用于内容包使用者和信息用途。
包代表构建包时内容的当前版本。 它们不包括AEM保留在存储库中的任何旧版本的内容。
您可以对包或对包执行以下操作:
包定义由各种类型的信息组成:
您可以编辑各种“包设置”来定义包描述、相关错误、依赖关系和提供程序信息等方面。
当创建或编辑包时,包设置对话框可通过编辑按钮使用,并提供三个用于配置的选项卡。 进行任何更改后,单击确定以保存这些更改。
字段 | 描述 |
---|---|
名称 | 包的名称。 |
组 | 要添加包的组的名称,用于组织包。 键入新用户组的名称,或选择现有用户组。 |
版本 | 用于自定义版本的文本。 |
描述 | 包的简要说明。 HTML标记可用于格式化。 |
缩略图 | 随包列表一起显示的图标。 单击“浏览”以选择本地文件。 |
字段 | 描述 | 格式/示例 |
---|---|---|
名称 | 提供者的名称。 | AEMGeometrixx |
URL | 提供程序的URL。 | https://www.aem-geometrixx.com |
链接 | 指向提供程序页面的包特定链接。 | https://www.aem-geometrixx.com/mypackage.html |
需要 |
|
|
AC 处理 | 指定在导入包时如何处理包中定义的访问控制信息:
默认值为忽略。 |
|
字段 | 描述 | 格式/示例 |
---|---|---|
已通过 | 此包的目标产品名称和版本或与之兼容的版本。 | AEM6 |
修复的错误/问题 | 允许您列表此包修复的错误的详细信息的文本字段。 请在单独的行上列表每个错误。 | bug-nr摘要 |
依赖于 | 列表依赖关系信息,当需要其他包时需要遵守这些信息才能让当前包按预期运行。 使用修补程序时,此字段很重要。 | groupId:name:version |
替换 | 替换此包的已弃用包的列表。 在安装之前,请检查此包是否包含来自废弃包的所有必要内容,以便不覆盖任何内容。 | groupId:name:version |
过滤器标识要包含在包中的存储库节点。 过滤器定义指定以下信息:
过滤器可以包含零个或多个规则。 未定义规则时,包包含根路径下的所有内容。
您可以为包定义一个或多个筛选器定义。 使用多个筛选器来包含来自多个根路径的内容。
下表介绍了这些规则并提供了示例:
规则类型 | 描述 | 示例 |
---|---|---|
包括 | 您可以定义路径,或使用常规表达式指定要包括的所有节点。 包含目录将:
|
/libs/sling/install(/)*)? |
排除 | 可以指定路径或使用常规表达式来指定要排除的所有节点。 排除目录将排除该目 录以及该目录中的所有文件和文件夹(即整个子树)。 |
/libs/wcm/foundation/components(/)*)? |
一个包可以包含多个筛选器定义,以便将来自不同位置的节点轻松组合到一个包中。
包过滤器通常在您首次创建包时进行定义,但以后也可以编辑它们(之后应重建包)。
您可以将屏幕截图附加到包中,以直观呈现内容的外观;例如,提供新功能的截屏。
您还可以将图标附加到包中,以快速参考包中包含的内容的可视化演示。 然后,此列表会显示在包中,它可以帮助您轻松识别包或包类别。
由于包中可以包含图标,因此正式包使用以下约定:
要避免混淆,请为包使用描述性图标,而不要使用其中一个官方图标。
正式修补程序包:
正式的AEM安装或扩展包:
正式功能包:
包管理器管理本地AEM安装上的包。 在为分配了必要权限后,您可以使用包管理器执行各种操作,包括配置、构建、下载和安装包。 要配置的关键元素包括:
要授予用户创建、修改、上传和安装包的权利,您必须在以下位置为他们授予适当的权限:
有关更改权限的说明,请参阅设置权限。
要创建新包定义,请执行以下操作:
在AEM欢迎屏幕上,单击包(或从工具控制台多次单击包)。
然后选择包管理器。
单击创建包。
如果实例包含大量包,则可能存在文件夹结构,因此,您可以在创建新包之前导航到所需的目标文件夹。
在对话框中:
输入:
组名称
目标组(或文件夹)名称。 组旨在帮助您组织包。
如果组尚不存在,则将为其创建文件夹。 如果将组名称留空,它将在主包列表(“主页”>“包”)中创建包。
包名称
新包的名称。 选择一个描述性名称,帮助您(和其他人)轻松识别包的内容。
版本
用于指示版本的文本字段。 这将附加到包名称中,以构成zip文件的名称。
单击确定以创建包。
AEM列表相应组文件夹中的新包。
单击要打开的图标或包名称。
如果需要,您可以在以后的阶段返回此页。
单击编辑以编辑包设置。
在此,您可以添加信息和/或定义某些设置;例如,这包括说明、图标、相关错误和添加提供程序详细信息。
编辑完设置后,单击确定。
根据需要将截屏添加到包中。 创建包时有一个实例可用,如果需要,可使用Sidekick中的包屏幕截图添加更多实例。
通过多次单击屏幕截图区域中的图像组件,添加图像,然后单击确定,添加实际图像。
定义包过滤器,方法是从Sidekick中拖动过滤器定义的实例,然后多次单击以打开进行编辑:
指定:
根路
径要打包的内容;这可以是子树的根。
规
则规则是可选的;对于简单的包定义,无需指定包括或排除规则。
如果需要,您可以定义Include或Exclude规则来准确定义包内容。
使用+符号添加规则,或者使用-符号删除规则。 根据规则的顺序应用规则,以便使用Up和Down按钮根据需要定位规则。
然后单击确定以保存过滤器。
您可以根据需要使用任意数量的筛选器定义,但必须谨慎确保它们不发生冲突。 使用预览确认包内容。
要确认包将包含什么,您可以使用预览。 这将执行构建过程的练习,并列表实际构建包时将添加到包的所有内容。
您现在可以构建您的包。
此时不强制构建包,可在以后某个时间完成。
通常,在创建包定义的同时构建包,但您可以在以后的某个时间返回构建或重建包。 如果存储库中的内容已更改,则此功能可能很有用。
在构建包之前,预览包的内容可能会很有用。 要执行此操作,请单击预览。
从包管理器打开包定义(单击包图标或名称)。
单击Build。 将显示一个对话框,要求您确认是否要构建包。
当您重建包时,这尤其重要,因为包内容将被覆盖。
单击确定。AEM将构建包,并按照其方式列出添加到包的所有内容。 完成AEM后,将显示确认,确认已构建包,并(关闭对话框时)更新包列表信息。
构建包后,可以根据需要重新打包。
重新打包会更改包信息- 而不更改包内容。 包信息是缩略图、说明等,换言之,您可以通过包设置对话框编辑的一切(要打开此信息,请单击编辑)。
重新包装的主要用例是准备包装时。 例如,您可能有一个现有包,并决定与他人共享它。 要添加缩略图并添加说明。 您不必使用其所有功能重新创建整个包(可能需要一些时间,并且有可能使包不再与原始包相同),而是重新包装它,只需添加缩略图和说明。
从包管理器打开包定义(单击包图标或名称)。
单击编辑并根据需要更新包设置。 单击确定进行保存。
单击重新打包,将显示一个对话框要求确认。
要视图或编辑有关包定义的信息:
在包管理器中,导航到要视图的包。
单击要视图的包的包图标。 此操作将打开包页面,其中列出有关包定义的信息:
您还可以通过此页编辑并对包执行某些操作。
可用的按钮取决于包是否已构建。
如果已构建包,请单击内容,将打开一个窗口并列表包的整个内容:
生成包后,您可以视图内容:
在包管理器中,导航到要视图的包。
单击要视图的包的包图标。 这将打开包页面,其中列出有关包定义的信息。
要视图内容,请单击内容,将打开一个窗口并列表包的整个内容:
要执行安装的练习,请单击“测试安装”。确认操作后,将打开一个窗口并列表结果,就像执行了安装一样:
本节介绍如何使用包管理器将包从AEM下载到文件系统。
在AEM欢迎屏幕上,单击包,然后选择包管理器。
导航到要下载的包。
单击要下载的包的zip文件名称(带下划线)所形成的链接;例如export-for-offline.zip
。
AEM将软件包下载到您的计算机(使用标准浏览器下载对话框)。
包上传允许您从文件系统将包上传到AEM包管理器。
要上传包,请执行以下操作:
导航到包管理器。 然后,转到要将包上载到的组文件夹。
单击上传包。
文件
您可以直接键入文件名,或使用浏览……对话框,从本地文件系统中选择所需的包(选择后单击确定)。
强制上传
如果具有此名称的包已存在,则可以单击此按钮强制上传(并覆盖现有包)。
单击确定,以上传新包并列在包管理器列表中。
要使内容可供AEM使用,请确保安装软件包。
在安装包之前,您可能希望验证其内容。 由于包可以修改/apps
和/或添加、修改和删除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,因为这可能导致意外的产品行为。
可以通过两种不同的方式验证包:
上传包后但安装包之前,应始终进行验证。
通过包管理器进行包验证
打开https://<server>:<port>/crx/packmgr
的包管理器
在列表中选择包,然后从标题中选择更多下拉列表,然后从下拉菜单中选择验证。
这应在上传内容包后完成,但在安装该包之前完成。
在随后出现的模态对话框中,使用复选框选择验证类型,并通过单击验证开始验证。 或者,单击取消。
然后运行所选验证。 结果显示在包管理器的活动日志中。
通过HTTPPOST请求进行包验证
POST请求采用以下形式。
https://<host>:<port>/crx/packmgr/service.jsp?cmd=validate&type=osgiPackageImports,overlays,acls
type
参数可以是以逗号分隔的无序列表,包括:
osgiPackageImports
overlays
acls
如果未传递,type
的值将默认为osgiPackageImports
。
以下是使用cURL执行包验证的示例。
如果使用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'
将运行所请求的验证,并将响应作为JSON对象发回。
对验证HTTPPOST请求的响应将是JSON对象,验证结果为。
上传包后,您需要安装该内容。 要安装包内容并使其正常工作,它必须同时具备以下两种功能:
安装包可覆盖或删除现有内容。 仅在您确定不删除或覆盖您需要的内容时上传包。
要查看包的内容或影响,您可以:
无需修改任何内容即可对包执行测试安装:
打开包(单击包图标或名称),然后单击测试安装。
请参阅包内容列表:
打开包,然后单击内容。
在安装包之前,会立即创建一个快照包,以包含将被覆盖的内容。
卸载包时,将重新安装此快照。
如果您正在安装数字资产,则必须:
首先,取消激活WorkflowLauncher。
使用OSGi控制台的“组件”菜单选项取消激活com.day.cq.workflow.launcher.impl.WorkflowLauncherImpl
。
然后,在安装完成后,重新激活WorkflowLauncher。
取消激活WorkflowLauncher可确保资产导入程序框架在安装时不会(无意中)操作资产。
在“包管理器”中,导航到要安装的包。
安装按钮显示在尚未安装的包的一侧。
或者,也可以通过单击软件包的图标打开软件包,以访问该软件包的安装按钮。
单击安装以开始安装。 对话框将请求确认并列表所有正在进行的更改。 完成后,单击对话框上的关闭。
安装软件包后,软件包旁边将显示“已安装”字样。
有一种替代方法可将包上传并安装到实例。 在文件系统中,您的jar和license.properties
文件旁边有一个crx-quicksart
文件夹。 您需要在crx-quickstart
下创建一个名为install
的文件夹。 然后您将拥有这样的功能:<aem_home>/crx-quickstart/install
在此安装文件夹中,您可以直接添加包。 它们将自动上传并安装在您的实例上。 完成后,您可以在包管理器中看到包。
如果实例正在运行,则向install
文件夹添加包将直接启动上传和实例上的安装。 如果实例未运行,您放入install
文件夹的包将在启动时按字母顺序安装。
您还可以在首次启动实例之前执行此操作。 为此,您需要手动创建crx-quickstart
文件夹,在文件夹下创建install
文件夹,然后将包放在该文件夹中。 然后,当您首次启动实例时,将按字母顺序安装包。
AEM允许您卸载包。 此操作会还原受在安装包之前立即创建的快照影响的存储库内容。
安装后,将创建一个包含将被覆盖的内容的快照包。
卸载该包时,将重新安装该包。
要从“包管理器”列表中删除包,请执行以下操作:
已从包中安装的文件/节点未被删除。
在工具控制台中,展开软件包文件夹,在右窗格中显示软件包。
单击要删除的包,以突出显示它,然后:
AEM要求您确认是否要删除该包。 单击确定以确认删除。
如果此包已安装,则已安装的内容将不被删除。
复制包的内容以将其安装到发布实例:
在包管理器中,导航到要复制的包。
单击要复制的包的图标或名称以展开它。
在工具栏的更多下拉菜单中,选择复制。
包共享是公开提供的用于共享内容包的中央服务器。
它已被软件分发替换。
软 件分发是新的用户界面,旨在简化AEM包的搜索和下载。
有关详细信息,请查看软件分发文档。
目前,AEM包管理器在软件分发中不可用,请将包下载到本地磁盘。