AEM是Adobe公司所出的商业内容管理系统,全称阿豆比体验管理系统(Adobe Experience Manager),其前身叫CQ,分别有CQ5 CQ6两个大版本。它提供了整套的网站内容管理系统解决方案,是一个企业级的重型系统。当然,这套系统在中国几乎没什么人知晓。但在澳洲,这系统几乎在所有金融行业遍地开花了。

基于客户的发展战略,不可避免地开始了AEM的扒坑之旅。不过,此前一直在扒Drupal的坑,再扒一堆坑也无关紧要了。

AEM 技术栈

Apache Sling

Apache Sling 是一个以内容为中心的网络框架。其使用Java的内容仓库去存储与管理内容,比如Apache JackrabbitCRX

  • 基于REST原则,以内容为导向进行开发
  • CQ5(或者说 AEM5, 6)天然集成
  • 用于处理HTTP的渲染与数据存储的请求。这是一种新的方式,它将在后台将内容组装,渲染最终将其呈现给用户
  • 能将内容对象与处理数据的组成映射起来
  • 支持服务端与AJAX请求
  • 支持多种脚本语言(比如,JSP, ESP, Ruby等)
  • http://incubator.apache.org/projects/sling.html 查看更多关于Sling的信息

OSGi (Apache Felix)

CQ5 内建了基于 OSGI R4 服务平台(OSGi Service Platform Release 4) 的应用程序框架。

  • 是一个针对JAVA的动态模块系统
  • 发展自通用中间键。很多第三方的组件可以以bundle的形式进行复用
  • OSGI的bundle可以包含经编译后的JAVA代码,脚本,或者内容。这些均可根据需要将其加载到相应的仓库,或者对其进行配置等等。

获得软件

所有需要的,只是一个可独立执行的jar包。由于是商业软件,License是必须的。我们将其放到一个文件夹下,暂且命名为aem-install吧。

关于目录下的 crx-quickstart 是当你启动后,自动生成的。里面包含了,你开发所需要的所有,包含所有的内容,以及配置等等。

准备

AEM 是一个基于JAVA跨平台的系统,所以 OS X, 桌面版 Windows, Linux肯定都可以支持啦。

唯一需要注意的是,AEM运行在JAVA 7上。所以如果你是用的JAVA 8,但却装有JAVA 7的话,只需要切换一下JAVA_HOME。将这条命令放在你的 .bashrc 或者.zshrc source一下就搞定啦。

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

启动

好的,一准备工作就绪,那么我们就开始我们的正式启动。比如有趣的是,Adobe提供了两种方法供我们使用。

1. 控制台

不用说,作为一个职业代码人,我们还是比较喜欢这样的方式的。

java -Xmx1024M -jar cq-author-p4502.jar -p 4502 -r author

其中,以下两个参数是可省的,因为默认的参数就是 端口 4502模式 author。当然,如果你的电脑足够强大,-Xmx1024M 也是可以省的。

  • -p指的是工作端口
  • -r指的是启动模式。常见的模式有authorpublish两种。当然还有其他的,用得不多就此略过罢

2. GUI 双击

当然,有时为了方便,也可以直接双击cq-author-p4502.jar启动。只是有几个需要注意的地方。

默认的情况,是以author模式,启动在localhost:4502。但我们可以在启动以前,通过修改jar包的名字,达到不同模式不同端口的效果。

cq-<instance-type>-p<port-number>.jar

比如,修改成

cq-author-p4502.jar

启动,这就达到了以author模式启动,端口设置在 4502的效果。

同理,修改成

cq-publish-p4503.jar

启动,就将以publish的模式启动,端口是4503

理想的情况是,你需要同时启动两个instance,只需要把jar包和license文件放在相应目录下就可以了。如:

<aem-install>/author

<aem-install>/publish

就绪

当AEM启动后,会自动打开浏览器定位到相应的页面。比如,我的是localhost:4502。以admin:admin登陆就可以开始正式的开发之路了。

小结

那么就此开始,我们已经扒完了AEM的第一坑了,AEM的填坑之路就正式开始了。接下来几篇,我将着重在开发之上,讲解一下AEM的整个开发流程。

AEM - Adobe CMS 扒坑记之始的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  3. .NET Core爬坑记 1.0 项目文件

    前言: 之所以要写这个系列是因为在移植项目到ASP.NET Core平台的过程中,遇到了一些“新变化”,这些变化有编译方面的.有API方面的,今天要讲的是编译方面的一些问题.我把它们整理后分享出来,以 ...

  4. 【踩坑记】从HybridApp到ReactNative

    前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...

  5. Spark踩坑记——共享变量

    [TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...

  6. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...

  7. UiAutomator2.0升级填坑记

    UiAutomator2.0升级填坑记 SkySeraph May. 28th 2017 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph个人站点:www.sk ...

  8. 珍爱生命,远离JS=>JS避坑记

    JavaScript避坑记 转载请注明源地址: http://www.cnblogs.com/funnyzpc/p/8407952.html 上图=> 有意思的漫画,不知大家看懂了没,这里我想说 ...

  9. 分布式改造剧集之Redis缓存采坑记

    Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...

随机推荐

  1. 推荐几款API文档集合工具

    https://zealdocs.org/    开源.免费,支持Linux.Windows http://velocity.silverlakesoftware.com/  https://kape ...

  2. 创建一个Windows的NTP Server

    搭建一个VMware vRealize Suite的时候遇见了不少时间同步的问题, 实验室里网络与外界隔绝, 不能使用公网的NTP服务器, 所以使用文中的方法自己搭建了一个. 蛮好用的. Creati ...

  3. RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用

    RUF MVC5 Repositories Framework Generator代码生成工具介绍和使用 功能介绍 这个项目经过了大半年的持续更新到目前的阶段基本稳定 所有源代码都是开源的,在gith ...

  4. java综合

    java环境变量配置:http://jingyan.baidu.com/article/f96699bb8b38e0894e3c1bef.html 1.导入项目 当下载了包含Eclipse 项目的源代 ...

  5. 永久删除 tadb.exe

    系统安装qq手机管家等手机管理软件之后,在开机时会自动运行tadb.exe, 这个垃圾进程会让开发android程序时默认的 adb.exe启动不了,这样就没法用手机调试. 这并不是说tadb.exe ...

  6. linux的库文件

    静态库和动态库 在windows中静态库是以 .lib 为后缀的文件,共享库是以.dll 为后缀的文件.在linux中静态库是以 .a 为后缀的文件,共享库是以 .so为后缀的文件. 以linux下的 ...

  7. [Java] 解决spring的xml标签内不能自由增加说明的难题,方便调试、部署时进行批量屏蔽

    作者:zyl910 以往我们想在spring的xml配置文件中增加说明文本时,只能使用xml注释(<!-- 注释 -->).这对于"调试.部署时想批量屏蔽部分bean" ...

  8. 用飞信监控GoldenGate进程

    监控GoldenGate进程 1)         在goldengate安装目录下建立文件ogginfo $vim ogginfo  info all 2)         配置飞信报警       ...

  9. [转载]BW增量更新的理解(时间戳)

    在BW中,存在两种数据抽取方式,完全更新与增量更新,完全更新是每次把截至到某个时间的数据全部抽取,增量抽取则只抽取上次和本次抽取之间更新的数据,很显然,增量抽取能够提高系统效率,根据SAP帮 助的说法 ...

  10. 修改windows系統下xampp中apache端口被其他程式占用的問題

    windows 7安裝後啟動xampp, 提示port 443 被其他程式占用. 網上查找解決方案: http://stackoverflow.com/questions/21182512/how-t ...