为AEM Forms设置本地开发环境 overview
当您将 Adobe Experience Manager Forms设置并配置为 Cloud Service环境时,您需要在云上设置开发、暂存和生产环境。 此外,您还可以设置和配置本地开发环境。
您可以使用本地开发环境执行以下操作,而无需登录到云开发环境:
- 创建表单和相关资产(主题、模板、自定义提交操作等)
- 将 PDF 表单转换为自适应表单
- 构建应用程序以按需或以批处理模式生成客户通信。
在本地开发实例或应用程序上准备好自适应表单或相关资源以生成[客户通信]后,您可以将自适应表单或客户通信应用程序从本地开发环境导出到Cloud Service环境,以进行进一步测试或迁移到生产环境。
您还可以在本地开发环境中开发和测试自定义代码,如自定义组件和预填充服务。 测试自定义代码并准备就绪后,您可以使用Cloud Service开发环境的Git存储库来部署自定义代码。
要设置新的本地开发环境并使用它来开发活动,请按列出的顺序执行以下操作:
先决条件
您需要以下软件来设置本地开发环境。 在开始设置本地开发环境之前,请下载以下内容:
从软件分发下载最新版本的软件 software-distribution
要从Software Distribution下载最新版本的Adobe Experience Manager as a Cloud Service SDK、Experience Manager Forms功能存档(AEM Forms加载项)、表单引用资源或Forms Designer:
-
使用您的Adobe ID登录https://experience.adobe.com/#/downloads
note note NOTE 必须为AEM as a Cloud Service配置您的Adobe组织才能下载AEM as a Cloud Service SDK。 -
导航到 AEM as a Cloud Service 选项卡。
-
按发布日期降序排序。
-
单击最新的Adobe Experience Manager as a Cloud Service SDK、Experience Manager Forms功能存档(AEM Forms加载项)、表单引用资源或Forms Designer。
note note NOTE 建议下载最新版本的Experience Manager Forms功能存档(AEM Forms加载项)、表单引用资产或Forms Designer,以便与Adobe Experience Manager as a Cloud Service SDK无缝兼容。 -
查看并接受EULA。 选择 下载 按钮。
为AEM项目设置开发工具 setup-development-tools-for-AEM-projects
Adobe Experience Manager Forms项目是一个自定义代码库。 它包含通过Cloud Manager部署到Adobe Experience Manageras a Cloud Service的代码、配置和内容。 AEM项目Maven原型提供项目的基线结构。
设置以下开发工具以用于您的Adobe Experience Manager项目进行开发:
有关设置上述开发工具的详细说明,请参阅设置开发工具。
设置本地Experience Manager环境以进行开发
Cloud ServiceSDK提供了一个快速启动文件。 它运行本地版本的Experience Manager。 您可以在本地运行Author或Publish实例。
虽然QuickStart提供了本地开发体验,但它在Adobe Experience Manageras a Cloud Service中没有所有可用功能。 因此,在将功能移至暂存或生产环境之前,请始终使用Adobe Experience Manageras a Cloud Service开发环境测试您的功能和代码。
要安装和配置本地Experience Manager环境,请执行以下步骤:
- 下载并提取 Adobe Experience Manageras a Cloud ServiceSDK
- 设置创作实例
- 设置Publish实例
将Forms存档添加到本地创作实例和Publish实例,并配置特定于Forms的用户 add-forms-archive-configure-users
按照列出的顺序执行以下步骤,将Forms存档添加到Experience Manager实例并配置特定于表单的用户:
安装最新的Forms附加功能存档 add-forms-archive
Adobe Experience Manager Formsas a Cloud Service功能存档提供了用于在本地开发环境中创建、样式化和优化自适应Forms的工具。 安装包以创建自适应表单并使用AEM Forms的各种其他功能。 要安装包,请执行以下操作:
-
从Software Distribution下载并提取操作系统的最新AEM Forms存档。
-
导航到crx-quickstart/install目录。 如果该文件夹不存在,请创建它。
-
停止AEM实例,将AEM Forms加载项功能存档
aem-forms-addon-<version>.far
放入安装文件夹中。 -
转到活动命令窗口并按
Ctrl + C
命令以重新启动SDK。note note NOTE 建议使用“Ctrl + C”命令重新启动SDK。 使用替代方法(例如,停止Java进程)重新启动AEM SDK可能会导致AEM开发环境不一致。
配置用户和权限 configure-users-and-permissions
创建像表单开发人员和表单从业者这样的用户,并将这些用户添加到预定义的表单组以为他们提供所需的权限。 下表列出了所有类型的用户和每种表单用户的预定义组:
当访问自适应Forms不需要用户身份验证时,不要向此类用户分配任何组。
为记录文档(DoR)设置本地开发环境 docker-microservices
AEM Forms as aCloud Service提供了基于Docker的SDK环境,可更轻松地开发记录文档并使用其他微服务。 它使您无需手动配置特定于平台的二进制文件和自适应。 要设置环境,请执行以下操作:
-
安装和配置Docker:
-
(对于Microsoft® Windows)安装Docker桌面。 它在您的计算机上配置
Docker Engine
和docker-compose
。 -
(Apple macOS)安装Docker Desktop for Mac。 它包括Docker引擎、Docker CLI客户端、Docker撰写、Docker内容信任、Kubernetes和凭据帮助程序。
note note NOTE -
对于Apple macOS,请允许列表包含本地AEM创作实例的文件夹。
-
Docker Desktop for Windows支持两个后端:Hyper-V
(旧版)和WSL2(新版)。 文件共享是自动的
使用WSL2(现代)时由Docker管理。 您必须
在使用Hyper-V(旧版)时显式配置文件共享。
-
-
创建文件夹(例如aem-sdk)与创作实例和发布实例并行进行。 例如,C:\aem-sdk。
-
提取
aem-forms-addon-<version>.zip\aem-forms-addon-native-<version>.zip
文件。 -
创建环境变量AEM_HOME ,并指向本地AEM Author安装。 例如,C:\aem\author\。
-
打开sdk.bat或sdk.sh进行编辑。 将AEM_HOME设置为指向本地AEM Author安装。 例如,C:\aem\author\。
-
打开命令提示符并导航到
aem-forms-addon-native-<version>
文件夹。 -
确保您的本地AEM创作实例已启动并正在运行。 运行以下命令以启动SDK:
-
在Microsoft® Windows上
code language-shell sdk.bat start
-
Linux®或Apple macOS
code language-shell % export AEM_HOME=[local AEM Author installation] % ./sdk.sh start
note note NOTE 如果已在sdk.sh文件中定义了环境变量,则可以在命令行中指定该变量。 提供了在命令行定义环境变量的选项,用于执行命令而不更新shell脚本。 -
您现在可以使用本地开发环境呈现记录文档。 要进行测试,请将XDP文件上传到您的环境并进行渲染。 例如,http://localhost:4502/libs/xfaforms/profiles/default.print.pdf?template=crx:///content/dam/formsanddocuments/cheque-request.xdp将XDP文件转换为PDF文档。
为基于Experience Manager原型的Forms设置开发项目 forms-cloud-service-local-development-environment
使用此项目可在本地Experience Manager Forms SDK上创建自适应Forms、部署配置更新、叠加、创建自定义自适应表单组件、测试和自定义代码。 在本地测试后,您可以将项目部署到Experience Manager Formsas a Cloud Service生产环境和非生产环境。 在部署项目时,还会部署以下AEM Forms资源:
设置基于AEM Archetype版本32或更高版本的项目以通过AEM Formsas a Cloud Service获取和使用Tranquil、Urbane和Ultraminary主题。
要设置项目,请执行以下操作:
-
在本地开发实例上克隆Cloud Manager Git存储库: 您的Cloud Manager Git存储库包含默认的AEM项目。 它基于AEM原型。 使用Cloud Manager UI中的自助Git帐户管理克隆Cloud Manager Git存储库,以将项目引入本地开发环境。 有关访问存储库的详细信息,请参阅访问存储库。
-
创建Experience Manager Forms作为[Cloud Service]项目: 根据最新的AEM原型或更高版本,创建Experience Manager Forms作为[Cloud Service]项目。 原型可帮助开发人员轻松开始开发AEM Formsas a Cloud Service。 它还包含一些示例主题和模板,可帮助您快速入门。
打开命令提示符并运行以下命令以创建Experience Manager Formsas a Cloud Service项目。
code language-shell mvn -B org.apache.maven.plugins:maven-archetype-plugin:3.2.1:generate -D archetypeGroupId=com.adobe.aem -D archetypeArtifactId=aem-project-archetype -D archetypeVersion="41" -D appTitle=mysite -D appId=mysite -D groupId=com.mysite -D includeFormsenrollment="y" -D aemVersion="cloud"
更改上述命令中的
appTitle
、appId
和groupId
以反映您的环境。 此外,根据您的许可证和要求,将includeFormsenrollment、includeFormscommunications和includeFormsheadless的值设置为y
或n
。 要基于核心组件创建自适应Forms,必须使用includeFormsheadless。-
使用
includeFormsenrollment=y
选项可包含创建自适应Forms所需的特定于Forms的配置、主题、模板、核心组件和依赖项。 如果您使用Forms门户,请设置includeExamples=y
选项。 它还将Forms Portal核心组件添加到项目中。 -
使用
includeFormscommunications=y
选项可以包含客户通信功能所需的Forms核心组件和依赖项。note warning WARNING - 使用版本45创建原型项目时,[AEM原型项目文件夹]/pom.xml最初将Forms核心组件版本设置为2.0.64。在构建或部署原型项目之前,请将Forms核心组件版本更新为2.0.62。
-
-
将项目部署到您的本地开发环境。 您可以使用以下命令部署到本地开发环境
mvn -PautoInstallPackage clean install
有关命令的完整列表,请参阅生成和安装
设置本地Dispatcher工具 setup-local-dispatcher-tools
Dispatcher是一个Apache HTTP Web服务器模块,在CDN和AEM Publish层之间提供了一个安全和性能层。 Dispatcher是整个Experience Manager架构的组成部分,应当是本地开发环境的一部分。
执行以下步骤以配置本地Dispatcher,然后向其添加特定于Forms的规则:
设置本地Dispatcher setup-local-dispatcher
Experience Manager as a Cloud Service SDK包含推荐的Dispatcher Tools版本,该版本有助于在本地配置、验证和模拟Dispatcher。 Dispatcher Tools基于Docker,它提供了命令行工具,用于将Apache HTTP Web Server和Dispatcher配置文件转换为兼容的格式并将其部署到在Docker容器中运行的Dispatcher。
Dispatcher上的缓存允许AEM Forms在客户端预填充自适应Forms。 它提高了预填充表单的渲染速度。
有关设置Dispatcher的详细说明,请参阅设置本地Dispatcher工具
将特定于Forms的规则添加到Dispatcher forms-specific-rules-to-dispatcher
执行以下步骤可为Experience Manager Formsas a Cloud Service配置Dispatcher缓存:
-
打开您的AEM项目并导航到
\src\conf.dispatcher.d\available_farms
-
创建
default.farm
文件的副本。 例如:forms.farm
。 -
打开创建的
forms.farm
文件进行编辑并替换以下代码:code language-json #/ignoreUrlParams { #/0001 { /glob "*" /type "deny" } #/0002 { /glob "q" /type "allow" } #}
替换为
code language-json /ignoreUrlParams { /0001 { /glob "*" /type "deny" } /0002 { /glob "dataRef" /type "allow" } }
-
保存并关闭文件。
-
转到
conf.d/enabled_farms
并创建指向forms.farm
文件的符号链接。 -
编译项目并将其部署到您的AEM Formsas a Cloud Service环境。
有关缓存的注意事项 considerations-about-caching
-
Dispatcher缓存允许AEM Forms在客户端预填充自适应Forms。 它提高了预填充表单的渲染速度。
-
默认情况下,缓存受保护内容功能处于禁用状态。 要启用该功能,您可以执行缓存受保护内容文章中提供的说明
-
Dispatcher可能无法使某些自适应Forms和相关自适应Forms失效。 要解决此类问题,请参阅疑难解答部分中的AEM Forms 缓存。
-
缓存本地化的自适应Forms:
- 使用URL格式
http://host:port/content/forms/af/<afName>.<locale>.html
而不是http://host:port/content/forms/af/afName.html?afAcceptLang=<locale>
请求自适应表单的本地化版本 - 默认情况下,“浏览器区域设置”选项处于禁用状态。 要更改浏览器区域设置设置,
- 使用URL格式
-
当您使用URL格式
http://host:port/content/forms/af/<adaptivefName>.html
,并且在配置管理器中禁用使用浏览器区域设置时,会提供自适应表单的非本地化版本。 非本地化语言是开发自适应表单时使用的语言。 不会考虑为浏览器配置的区域设置(浏览器区域设置),并且会提供自适应表单的非本地化版本。 -
当您使用URL格式
http://host:port/content/forms/af/<adaptivefName>.html
,并且在配置管理器中启用了使用浏览器区域设置时,会提供自适应表单的本地化版本(如果可用)。 本地化的自适应表单的语言基于为您的浏览器配置的区域设置(浏览器区域设置)。 它导致[只缓存自适应表单]的第一个实例。 要防止实例上发生此问题,请参阅疑难解答部分中的仅缓存自适应表单的第一个实例。
您的本地开发环境已准备就绪。
在 AEM Forms as a Cloud Service 和本地开发环境上启用自适应表单核心组件
在AEM Formsas a Cloud Service上启用自适应Forms核心组件后,您可以将AEM FormsCloud Service实例用于多个渠道,开始创建、发布和交付基于核心组件的自适应Forms和Headless Forms。 您需要具备启用了自适应表单核心组件的环境才能使用 Headless 自适应表单。
有关说明,请参阅在AEM Formsas a Cloud Service和本地开发环境中启用自适应Forms核心组件
升级本地开发环境 upgrade-your-local-development-environment
将SDK升级到新版本需要替换整个本地开发环境,从而导致本地存储库中所有代码、配置和内容的丢失。 确保任何不应销毁的代码、配置或内容都会安全提交到Git,或从本地Experience Manager实例中导出为CRX包。
如何在升级SDK时避免内容丢失 avoid-content-loss-when-upgrading--SDK
升级SDK将有效地创建一个全新的创作实例和Publish实例,包括新的存储库(设置AEM项目),这意味着对先前SDK的存储库所做的任何更改都将丢失。 有关在SDK升级之间帮助保留内容的可行策略,请参阅在升级AEM SDK时如何避免内容丢失
备份特定于Forms的内容并将其导入到新的SDK环境中 backup-and-import-Forms-specific-content-to-new-SDK-environment
要将资产从现有SDK备份并移动到新的SDK环境,请执行以下操作:
-
创建现有内容的备份。
-
设置全新SDK环境。
-
将备份导入到新的SDK环境。
创建现有内容的备份 create-backup-of-your-existing-content
备份自适应Forms、模板、表单数据模型(FDM)、主题、配置和自定义代码。 您可以执行以下操作来创建备份:
-
下载自适应Forms、主题和PDF forms。
-
导出自适应表单模板。
-
下载表单数据模型
-
导出可编辑的模板、云配置和工作流模型。 要从现有SDK中导出前面提到的所有项目,请创建包含以下过滤器的CRX-Package:
- /conf/ReferenceEditableTemplates
- /conf/global/settings/cloudconfigs
- /conf/global/settings/wcm
- /var/workflow/model
- /conf/global/settings/workflow
-
从本地开发环境导出电子邮件配置、提交和预填充操作代码。 要导出这些设置和配置,请在本地开发环境中创建以下文件夹和文件的副本:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
将备份导入到新的SDK环境 import-the-backup-to-your-new-SDK-environment
将自适应Forms、模板、表单数据模型、主题、配置和自定义代码导入新环境。 您可以执行以下操作来导入备份:
-
将自适应Forms、主题和PDF forms导入新SDK环境。
-
将自适应表单模板导入到新的SDK环境。
-
将表单数据模型上传到新的SDK环境。
-
导入可编辑的模板、云配置和工作流模型。 要导入新SDK环境中前面提到的所有项目,请将包含这些项目的CRX包导入到新SDK环境中。
-
从本地开发环境导入电子邮件配置、提交和预填充操作代码。 要导入这些设置和配置,请将以下文件从旧的原型项目放置到新原型项目中:
[Archetype Project in Cloud Service Git]/core/src/main/java/com/<program name>/core/service
[Archetype Project in Cloud Service Git] /core/src/main/java/com/<program name>/core/servlets/FileAttachmentServlet.java
[Archetype Project in Cloud Service Git]/ui.apps/src/main/content/jcr_root/apps/<program name>/config
您的新环境现在具有旧环境的表单和相关资源。