设置本地 AEM SDK set-up-local-aem-sdk
Adobe Experience Manager (AEM) 可以使用 AEM as a Cloud Service SDK 的快速入门 Jar 在本地运行。这样开发人员即可先部署到和测试自定义代码、配置和内容,然后再将它提交到源代码管理以及将它部署到 AEM as a Cloud Service 环境。
请注意,~
用作用户目录的简写。 在Windows中,这相当于%HOMEPATH%
。
安装Java™
Experience Manager是一种Java™应用程序,因此需要OracleJava™ SDK支持开发工具。
- 下载并安装最新的Java™ SDK 11
- 通过运行以下命令验证是否安装了OracleJava™ 11 SDK:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
下载AEM as a Cloud Service SDK
AEM as a Cloud Service SDK(或AEM SDK)包含用于在本地运行AEM Author和Publish以进行开发的快速入门Jar,以及Dispatcher Tools的兼容版本。
- 使用您的Adobe ID登录到https://experience.adobe.com/#/downloads
- 请注意,必须为您的Adobe组织 配置 以便AEM as a Cloud Service下载AEM as a Cloud Service SDK。
- 导航到 AEM as a Cloud Service 选项卡
- 按 发布日期 排序,顺序为 降序
- 单击最新的 AEM SDK 结果行
- 查看并接受EULA,然后点按 下载 按钮
从AEM SDK zip文件中提取快速入门Jar
- 解压缩下载的
aem-sdk-XXX.zip
文件
设置本地AEM创作服务 set-up-local-aem-author-service
本地AEM创作服务为开发人员提供了一个本地体验,数字营销人员/内容作者可以共享该体验来创建和管理内容。 AEM Author Service设计作为创作和预览环境,允许可以针对它执行大多数功能开发验证,使其成为本地开发过程的重要元素。
-
创建文件夹
~/aem-sdk/author
-
将 快速入门JAR 文件复制到
~/aem-sdk/author
并将其重命名为aem-author-p4502.jar
-
通过从命令行执行以下命令来启动本地AEM Author Service:
java -jar aem-author-p4502.jar
- 提供管理员密码作为
admin
。 可接受任何管理员密码,但建议对本地开发使用默认密码以减少重新配置的需要。
- 提供管理员密码作为
您 无法 通过双击🔗启动AEM作为Cloud Service快速入门Jar 。
-
在Web浏览器中访问本地AEM Author服务: http://localhost:4502
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
设置本地AEM Publish服务
本地AEM Publish服务为开发人员提供AEM的本地体验最终用户,例如浏览基于AEM的网站。 本地AEM Publish服务非常重要,因为它与AEM SDK的Dispatcher工具集成,允许开发人员对面向最终用户的最终体验进行冒烟测试和微调。
-
创建文件夹
~/aem-sdk/publish
-
将 快速入门JAR 文件复制到
~/aem-sdk/publish
并将其重命名为aem-publish-p4503.jar
-
从命令行执行以下命令,启动本地AEM Publish服务:
java -jar aem-publish-p4503.jar
- 提供管理员密码作为
admin
。 可接受任何管理员密码,但建议对本地开发使用默认密码以减少重新配置的需要。
- 提供管理员密码作为
您 无法 通过双击🔗启动AEM作为Cloud Service快速入门Jar 。
-
在Web浏览器中访问本地AEM Publish服务,网址为http://localhost:4503
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
在预发行模式中设置本地AEM服务
本地AEM运行时可在预发行模式中启动,允许开发人员针对AEM as a Cloud Service的下一发行版功能进行构建。 通过在本地AEM运行时的第一个启动上传递-r prerelease
参数,启用了预发行版。 这既可以与本地AEM Author一起使用,也可以与AEM Publish服务一起使用。
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
模拟内容分发 content-distribution
在真实的Cloud Service环境中,使用Sling Content Distribution和Adobe管道,将内容从Author Service分发到Publish Service。 Adobe管道是仅在云环境中可用的独立微服务。
在开发期间,可能需要使用本地Author和Publish服务模拟内容分发。 这可以通过启用旧版复制代理来实现。
-
登录到 作者 服务并导航到http://localhost:4502/etc/replication/agents.author.html。
-
单击 默认代理(发布) 以打开默认复制代理。
-
单击 编辑 以打开代理的配置。
-
在 设置 选项卡下,更新以下字段:
- 已启用 — 检查true
- 代理用户ID — 将此字段留空
-
在 传输 选项卡下,更新以下字段:
- URI -
http://localhost:4503/bin/receive?sling:authRequestLogin=1
- 用户 -
admin
- 密码 -
admin
- URI -
-
单击 确定 保存配置并启用 默认 复制代理。
-
您现在可以更改Author服务上的内容并将其发布到Publish服务。
快速入门Jar启动模式
快速入门Jar aem-<tier>_<environment>-p<port number>.jar
的命名指定了它的启动方式。 AEM在特定层、创作层或发布层启动后,无法更改为备用层。 为此,必须删除首次运行时生成的crx-Quickstart
文件夹,并且必须重新运行快速入门Jar。 可以更改环境和端口,但是它们需要停止/启动本地AEM实例。
更改环境dev
、stage
和prod
对开发人员很有用,可确保环境特定的配置由AEM正确定义和解析。 建议主要针对默认的dev
环境运行模式执行本地开发。
可用的排列如下:
aem-author-p4502.jar
aem-author_dev-p4502.jar
aem-author-p4502.jar
相同)aem-author_stage-p4502.jar
aem-author_prod-p4502.jar
aem-publish-p4503.jar
aem-publish_dev-p4503.jar
aem-publish-p4503.jar
相同)aem-publish_stage-p4503.jar
aem-publish_prod-p4503.jar
请注意,端口号可以是本地开发计算机上的任何可用端口,但按照惯例可以:
- 端口 4502 用于 本地AEM创作服务
- 端口 4503 用于 本地AEM Publish服务
更改这些配置文件可能需要调整AEM SDK配置
停止本地AEM运行时
要停止本地AEM运行时(AEM Author或Publish服务),请打开用于启动AEM运行时的命令行窗口,然后点按Ctrl-C
。 等待AEM关闭。 当关闭过程完成时,命令行提示符可用。
可选的本地AEM运行时设置任务
- OSGi配置环境变量和机密变量 是专门为AEM本地运行时设置的,而不是使用aio CLI管理它们。
何时更新快速入门Jar
在每月的最后一个星期四或之后不久,至少每月更新AEM SDK,这是AEM as a Cloud Service“功能发布”的发布节奏。
如何避免在升级AEM SDK时丢失内容
升级AEM SDK会有效地创建一个全新的AEM运行时,其中包括一个新的存储库,这意味着对先前AEM SDK的存储库所做的任何更改都将丢失。 以下是帮助在AEM SDK升级之间保留内容的可行策略,可以单独或一致使用:
- 创建一个专门用于包含“示例”内容的内容包,以帮助进行开发,并在Git中对其进行维护。 任何应通过AEM SDK升级保留的内容将保留在此包中,并在升级AEM SDK后重新部署。
- 结合使用oak-upgrade和
includepaths
指令,将内容从以前的AEM SDK存储库复制到新的AEM SDK存储库。 - 使用以前的AEM SDK上的AEM包管理器和内容包备份任何内容,并在新的AEM SDK上重新安装它们。
请记住,在AEM SDK升级之间使用上述方法维护代码,表明开发存在反模式。 非一次性代码应源自开发IDE,并通过部署流入AEM SDK。
疑难解答
双击快速入门Jar文件会导致错误 troubleshooting-double-click
双击快速入门Jar启动时,显示错误模式,阻止AEM本地启动。
这是因为AEM as a Cloud Service快速入门Jar不支持双击快速入门Jar以本地启动AEM。 相反,必须从该命令行运行Jar文件。
要启动AEM Author服务,cd
进入包含Quickstart Jar的目录并执行命令:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
或者,要启动AEM Publish服务,请在包含Quickstart Jar的目录中cd
并执行命令:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|
从命令行启动快速入门Jar会立即中止 troubleshooting-java-8
从命令行启动快速入门Jar时,进程立即中止,AEM服务未启动,并出现以下错误:
➜ ~/aem-sdk/author: java -jar aem-author-p4502.jar
Loading quickstart properties: default
Loading quickstart properties: instance
java.lang.Exception: Quickstart requires a Java Specification 11 VM, but your VM (Java HotSpot(TM) 64-Bit Server VM / Oracle Corporation) reports java.specification.version=1.8
at com.adobe.granite.quickstart.base.impl.Main.checkEnvironment(Main.java:1046)
at com.adobe.granite.quickstart.base.impl.Main.<init>(Main.java:646)
at com.adobe.granite.quickstart.base.impl.Main.main(Main.java:981)
Quickstart: aborting
这是因为AEM as a Cloud Service需要Java™ SDK 11,而您运行的是其他版本,很可能是Java™ 8。 要解决此问题,请下载并安装OracleJava™ SDK 11。
安装OracleJava™ 11 SDK后,通过从命令行运行命令来验证它是活动版本:
code language-shell |
---|
|
code language-shell |
---|
|
code language-shell |
---|
|