如何使用快速开发环境
了解 如何在AEM as a Cloud Service中使用 快速开发环境(RDE)。 从您喜爱的集成开发环境(IDE)将代码和内容部署到RDE,以加快近乎最终代码的开发周期。
使用AEM WKND Sites项目,您可以通过从您喜爱的IDE运行AEM-RDE的install
命令来了解如何将各种AEM工件部署到RDE。
- AEM代码和内容包(all, ui.apps)部署
- OSGi捆绑包和配置文件部署
- Apache和Dispatcher将部署配置为zip文件
- 单个文件,如HTL、
.content.xml
(对话框XML)部署 - 查看其他RDE命令,如
status, reset and delete
先决条件
克隆WKND Sites项目并在您喜爱的IDE中将其打开,以将AEM工件部署到RDE上。
$ git clone git@github.com:adobe/aem-guides-wknd.git
然后,通过运行以下maven命令来构建它并将其部署到本地AEM-SDK。
$ cd aem-guides-wknd/
$ mvn clean package
使用AEM-RDE插件部署AEM工件
使用aem:rde:install
命令,让我们部署各种AEM工件。
部署all
和dispatcher
包
一个常见的起点是首先通过运行以下命令来部署all
和dispatcher
包。
# Install the 'all' package
$ aio aem:rde:install all/target/aem-guides-wknd.all-2.1.3-SNAPSHOT.zip
# Install the 'dispatcher' zip
$ aio aem:rde:install dispatcher/target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip
成功部署后,请在创作和发布服务上验证WKND站点。 您应该能够在WKND网站页面上添加和编辑内容并进行发布。
增强和部署组件
让我们增强Hello World Component
并将其部署到RDE。
-
从
ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/
文件夹中打开对话框XML (.content.xml
)文件 -
在现有
Text
对话框字段后添加Description
文本字段code language-xml ... <description jcr:primaryType="nt:unstructured" sling:resourceType="granite/ui/components/coral/foundation/form/textfield" fieldLabel="Description" name="./description"/> ...
-
从
ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld
文件夹中打开helloworld.html
文件 -
在
Text
属性的现有<div>
元素之后渲染Description
属性。code language-html ... <div class="cmp-helloworld__item" data-sly-test="${properties.description}"> <p class="cmp-helloworld__item-label">Description property:</p> <pre class="cmp-helloworld__item-output" data-cmp-hook-helloworld="property">${properties.description}</pre> </div> ...
-
通过执行maven构建或同步单个文件来验证本地AEM-SDK上的更改。
-
通过
ui.apps
包或通过部署单个对话框和HTL文件来部署对RDE的更改。code language-shell # Using 'ui.apps' package $ cd ui.apps $ mvn clean package $ aio aem:rde:install target/aem-guides-wknd.ui.apps-2.1.3-SNAPSHOT.zip # Or by deploying the individual HTL and Dialog XML # HTL file $ aio aem:rde:install ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/helloworld.html -t content-file -p /apps/wknd/components/helloworld/helloworld.html # Dialog XML $ aio aem:rde:install ui.apps/src/main/content/jcr_root/apps/wknd/components/helloworld/_cq_dialog/.content.xml -t content-xml -p /apps/wknd/components/helloworld/_cq_dialog/.content.xml
-
通过在WKND站点页面上添加或编辑
Hello World Component
来验证RDE上的更改。
查看install
命令选项
在上述单个文件部署命令示例中,-t
和-p
标志分别用于指示JCR路径的类型和目标。 让我们通过运行以下命令来查看可用的install
命令选项。
$ aio aem:rde:install --help
这些标记含义一目了然,-s
标记可用于仅将部署定位到创作或发布服务。 在部署 content-file或content-xml 文件时使用-t
标记以及-p
标记在AEM RDE环境中指定目标JCR路径。
部署OSGi捆绑包
要了解如何部署OSGi捆绑包,让我们增强HelloWorldModel
Java™类并将其部署到RDE。
-
从
core/src/main/java/com/adobe/aem/guides/wknd/core/models
文件夹中打开HelloWorldModel.java
文件 -
按如下方式更新
init()
方法:code language-java ... message = "Hello World!\n" + "Resource type is: " + resourceType + "\n" + "Current page is: " + currentPagePath + "\n" + "Changes deployed via RDE, lets try faster dev cycles"; ...
-
通过通过maven命令部署
core
捆绑包,验证本地AEM-SDK上的更改 -
通过运行以下命令将更改部署到RDE
code language-shell $ cd core $ mvn clean package $ aio aem:rde:install target/aem-guides-wknd.core-2.1.3-SNAPSHOT.jar
-
通过在WKND站点页面上添加或编辑
Hello World Component
来验证RDE上的更改。
部署OSGi配置
您可以部署单个配置文件或完整的配置包,例如:
# Deploy individual config file
$ aio aem:rde:install ui.config/src/main/content/jcr_root/apps/wknd/osgiconfig/config/org.apache.sling.commons.log.LogManager.factory.config~wknd.cfg.json
# Or deploy the complete config package
$ cd ui.config
$ mvn clean package
$ aio aem:rde:install target/aem-guides-wknd.ui.config-2.1.3-SNAPSHOT.zip
-s
标志。部署Apache或Dispatcher配置
无法单独部署Apache或Dispatcher配置文件 ,但需要以ZIP文件的形式部署整个Dispatcher文件夹结构。
-
在
dispatcher
模块的配置文件中进行所需的更改,以便演示,请更新dispatcher/src/conf.d/available_vhosts/wknd.vhost
以仅缓存html
文件60秒。code language-none ... <LocationMatch "^/content/.*\.html$"> Header unset Cache-Control Header always set Cache-Control "max-age=60,stale-while-revalidate=60" "expr=%{REQUEST_STATUS} < 400" Header always set Surrogate-Control "stale-while-revalidate=43200,stale-if-error=43200" "expr=%{REQUEST_STATUS} < 400" Header set Age 0 </LocationMatch> ...
-
在本地验证更改,有关更多详细信息,请参阅在本地运行Dispatcher。
-
通过运行以下命令将更改部署到RDE:
code language-shell $ cd dispatcher $ mvn clean install $ aio aem:rde:install target/aem-guides-wknd.dispatcher.cloud-2.1.3-SNAPSHOT.zip
-
验证RDE上的更改
其他AEM RDE插件命令
让我们查看要管理的其他AEM RDE插件命令,并与本地计算机的RDE交互。
$ aio aem:rde --help
Interact with RapidDev Environments.
USAGE
$ aio aem rde COMMAND
COMMANDS
aem rde delete Delete bundles and configs from the current rde.
aem rde history Get a list of the updates done to the current rde.
aem rde install Install/update bundles, configs, and content-packages.
aem rde reset Reset the RDE
aem rde restart Restart the author and publish of an RDE
aem rde status Get a list of the bundles and configs deployed to the current rde.
使用上述命令,可以从您喜爱的IDE中管理RDE,以加快开发/部署生命周期。
后续步骤
了解使用RDE🔗快速交付功能的开发/部署生命周期。
其他资源
用于与AEM快速开发环境交互的Adobe I/O Runtime CLI插件