AEM-第一课-环境的搭建和项目的创建

AEM-第一课

1.什么是AEM

1.1 AEM 官方定义

  • Adobe Experience Manager is a web-based client-server system for building, managing, and deploying commercial websites and related services.
  • A number of infrastructure-level and application-level functions are combined into a single integrated package.

1.2 AEM 自我理解

1.2.1 AEM简要介绍

AEM本质为 Adobe 出品的一个CMS管理系统,相比于市面上其他著名的CMS系统,比如Wordpress,织梦等。

1.2.2 AEM具有以下显著特点:
  • 所见即所得: 一般的CMS系统都会提供很多预开发好的功能和页面,比如首页,文章详情页,文章列表页等页面,然后用户可以在CMS提供的管理后台管理和维护站点的相关信息,或者创建新的文章,而这些管理后台都只是表单型的提交数据到数据库,用户再次进入站点前台页面时,前台页面会读取新的数据配置的页面信息再次渲染出来。

而AEM则不需要在一个独立的管理后台中进行表单式的提交数据,而是直接在最终页面上进行编辑,编辑完后直接显示

  • 组件化: 不用于一般CMS由开发商一次开发好所有网站功能,一般以页面为单位,用户只能在管理后台编辑数据的模式,AEM的具有一定逻辑代码的最小单元是组件,AEM平台本身提供了很多常用的组件,比如列表(链接,图片均可),富文本编辑,面包屑,图片,轮播图,表格等组件,开发者也可以开发任何自定义组件。 下面是OOTB提供的一些组件:
    https://i-blog.csdnimg.cn/blog_migrate/d4a38a2f1c3c0fcbff6b2ee281241da8.png
  • 文档型数据库: 不同于一般的CMS系统使用MySql, SqlServer等关系型数据库,AEM采用文档型数据库(JCR)来存储数据。使用该数据库的显著特点是AEM的程序本身,以及用户所添加的数据,上传的图片等全部存储在AEM实例的所在文件夹中,文件夹结构如下:
    在这里插入图片描述

1.3 AEM 能做什么

AEM 作为一个企业级的CMS管理系统,主要用户维护,创建和部署大型商业网站及其服务

2. 本地开发环境的搭建

2.1 所需软件:

2.2 集成开发环境(IDE)

  • IntelliJ
  • AEM Tools插件
  • AEM IDE Tooling 4 Intellij插件
  • IntelliVult 插件

2.3 安装本地AEM实例

步骤:

  • 确保 已安装Java
  • 获取AEM快速入门Jar和license.properties 的副本(百度网盘)
  • 在计算机上创建一个文件夹结构,如下所示
  ~/aem-sdk
     /author   作者环境
     /publish  发布环境
  • 将jar重命名为 aem-author-p4502.jar 并将其放在 / author 目录下。在/ author 目录下添加 license.properties 文件
  • 复制jar,将其重命名为 aem-publish-p4503.jar 并将其放在 / publish 目录下。在/ publish 目录下添加license.properties 文件 的副本
~/aem-sdk
    /author
        + aem-author-p4502.jar
        + license.properties
    /publish
        + aem-publish-p4503.jar
        + license.properties
  • 双击 aem-author-p4502.jar 文件以安装 Author 实例。这将启动作者实例,该实例在本地计算机上的端口4502 上运行
    双击 aem-publish-p4503.jar 文件以安装 发布 实例。这将启动发布实例,该实例在本地计算机上的端口4503 上运行

2.4 安装Apache Maven

  • adobe-public 配置文件添加 到settings.xml
<settings xmlns="https://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
 <!-- ====================================================== -->
 <!-- A D O B E   P U B L I C   P R O F I L E                -->
 <!-- ====================================================== -->
     <profile>
         <id>adobe-public</id>
         <activation>
             <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
             <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
             <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
             <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
         </properties>
         <repositories>
             <repository>
                 <id>adobe-public-releases</id>
                 <name>Adobe Public Repository</name>
                 <url>https://repo.adobe.com/nexus/content/groups/public</url>
                 <releases>
                     <enabled>true</enabled>
                     <updatePolicy>never</updatePolicy>
                 </releases>
                 <snapshots>
                     <enabled>false</enabled>
                 </snapshots>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                 <id>adobe-public-releases</id>
                 <name>Adobe Public Repository</name>
                 <url>https://repo.adobe.com/nexus/content/groups/public</url>
                 <releases>
                     <enabled>true</enabled>
                     <updatePolicy>never</updatePolicy>
                 </releases>
                 <snapshots>
                     <enabled>false</enabled>
                 </snapshots>
             </pluginRepository>
         </pluginRepositories>
     </profile>
</profiles>
 <activeProfiles>
     <activeProfile>adobe-public</activeProfile>
 </activeProfiles>
</settings>

2.5 设置集成开发环境

  • IntelliJ 安装 AEM Tools插件
  • IntelliJ 安装 AEM IDE Tooling 4 Intellij插件
  • IntelliJ 安装 IntelliVult 插件
  • 下载vault-cli-3.4.0脚本
  • 配置 IntelliVult
    在这里插入图片描述

2.6 故障排除

2.6.1 遇到问题时,最好的第一步是验证代码是否已成功部署并安装到AEM
  • 检查程序包管理器, 以确保代码包已上载并安装: http://localhost:4502/crx/packmgr/index.jsp 。检查时间戳以确认软件包最近已安装。
  • 如果使用诸如Repo或AEM Developer Tools之类的工具进行增量文件更新, 请检查CRXDE Lite 该文件已被推送到本地AEM实例,并且文件内容已更新: http://localhost:4502/crx/de/index.jsp
  • 如果发现与OSGi捆绑包中的Java代码相关的问题,请检查捆绑包是否已上传 。打开Adobe Experience Manager Web控制台: http://localhost:4502/system/console/bundles 并搜索您的捆绑软件。确保捆绑包处于 活动 状态
2.6.2 检查日志
  • 日志位置 /crx-quickstart/logs/error.log
  • 如果要更改日志级别,可以转到日志支持: http://localhost:4502/system/console/slinglog 进行修改

在这里插入图片描述

2.6.3 检查捆绑包处于已安装状态

所有捆绑包(不包括碎片)都应处于 活动 状态。如果您看到代码束处于“已安装”状态,则有一个问题需要解决。大多数情况下,这是一个依赖性问题. http://localhost:4502/system/console/bundles
在这里插入图片描述

在上面的屏幕截图中,WKND Core捆绑包处于“已安装”状态。这是因为捆绑软件包com.adobe.cq.wcm.core.components.models 版本与AEM实例上可用的版本不同 。
可以使用工具“依赖关系查找器”: http://localhost:4502/system/console/depfinder 添加程序包名称以检查AEM实例上可用的版本:
在这里插入图片描述

继续上面的示例,我们可以看到在AEM实例上安装的版本是 捆绑软件预期的12.2 和 12.6 。从那里,您可以向后工作,查看AEM上的Maven依赖项是否与AEM项目中的Maven依赖项匹配。在上面的示例中,AEM实例上安装了Core Components v2.2.0, 但是构建的代码束依赖于 v2.2.2 ,因此产生了依赖性问题。

2.6.4 验证吊索模型注册

AEM组件应始终由Sling模型支持,以封装任何业务逻辑并确保HTL呈现脚本保持干净。如果遇到无法找到Sling模型的问题,那么从控制台检查Sling模型可能会有所帮助: http://localhost:4502/system/console/status-slingmodels . 这将告诉您您的Sling模型是否已注册以及绑定到的资源类型(组件路径)
在这里插入图片描述
显示与wknd/components/content/byline的组件资源类型相关 的Sling模型BylineImpl 的注册 。

3 项目设置

3.1 创建项目

  • 导航到要在其中生成AEM项目的目录,将以下内容粘贴到命令行中以 批处理方式生成项目
    mvn archetype:generate -B -DarchetypeGroupId=com.adobe.granite.archetypes -DarchetypeArtifactId=aem-project-archetype -DarchetypeVersion=18 -DgroupId=com.adobe.aem.guides -Dversion=0.0.1-SNAPSHOT -DappsFolderName=wknd -DartifactId=aem-guides-wknd -Dpackage=com.adobe.aem.guides.wknd -DartifactName=“WKND Sites Project” -DcomponentGroupName=WKND -DconfFolderName=wknd -DcontentFolderName=wknd -DcssId=wknd -DisSingleCountryWebsite=n -Dlanguage_country=en_us -DoptionAemVersion=6.5.0 -DoptionDispatcherConfig=none -DoptionIncludeErrorHandler=n -DoptionIncludeExaples=y -DoptionIncludeFrontendModule=y -DpackageGroup=wknd -DsiteName=“WKND Site”

说明1:也可以用IntelliJ 的AEM开发人员工具插件 来创建Maven AEM项目.
说明2:如果收到以下错误: Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate (default-cli) on project standalone-pom: The desired archetype does not exist 。说明〜/ .m2 / settings.xml 文件中未正确引用Adobe 存储库。请重新确认settings.xml文件正确引用了Adobe存储库.

  • 以下文件夹和文件结构由本地文件系统上的Maven原型生成
    在这里插入图片描述

3.2 部署项目

  • 确保您有一个在端口4502 上本地运行的AEM实例
  • 从命令行导航到 aem-guides-wknd 项目目录
  • 运行以下命令以将整个项目构建并部署到AEM
$ mvn -PautoInstallPackage clean install
...
 [INFO] ------------------------------------------------------------------------
 [INFO] Reactor Summary for aem-guides-wknd 0.0.1-SNAPSHOT:
 [INFO] 
 [INFO] aem-guides-wknd .................................... SUCCESS [  0.394 s]
 [INFO] WKND Sites Project - Core .......................... SUCCESS [  7.299 s]
 [INFO] WKND Sites Project - UI Frontend ................... SUCCESS [ 31.938 s]
 [INFO] WKND Sites Project - Repository Structure Package .. SUCCESS [  0.736 s]
 [INFO] WKND Sites Project - UI apps ....................... SUCCESS [  4.025 s]
 [INFO] WKND Sites Project - UI content .................... SUCCESS [  1.447 s]
 [INFO] WKND Sites Project - All ........................... SUCCESS [  0.881 s]
 [INFO] WKND Sites Project - Integration Tests Bundles ..... SUCCESS [  1.052 s]
 [INFO] WKND Sites Project - Integration Tests Launcher .... SUCCESS [  1.239 s]
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
 ...

Maven配置文件 autoInstallSinglePackage 编译项目的各个模块,并将单个程序包部署到AEM实例。默认情况下,此软件包将部署到本地运行在端口4502上 且使用admin:admin 凭据的AEM实例 。

  • 导航到本地AEM实例上的Package Manager: http://localhost:4502/crx/packmgr/index.jsp 。 您应该看到三个软件包,分别是 aem-guides-wknd.ui.apps , aem-guides-wknd.ui.content 。
  • 导航到站点控制台: http://localhost:4502/sites.html/content 。WKND网站将是其中一个网站。

3.3 AEM project modules structure

在这里插入图片描述


更多好文

赞赏支持
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值