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. Linux 下Shell 脚本几种基本命令替换区别

    Shell 脚本几种基本命令替换区别 前言:因为工作需要,需要编写 shell script .编写大量 shell script 时,累计了大量经验,也让自己开始迷糊几种函数输出调用的区别.后面和 ...

  2. iOS:界面适配(三)--iPhone不同机型适配 6/6plus 前

    转:http://blog.csdn.net/houseq/article/details/40051207 对于不同苹果设备,各个参数查看<iOS:机型参数.sdk.xcode各版本>. ...

  3. 实用的插件:跨浏览器复制jQuery-zclip

    Query-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题.jQuery-zclip插件需要Flash的支持,使用时记得安装Adobe Fl ...

  4. 努力学习 HTML5 (2)—— 元素的增和删

    HTML5 放松了某些规则,HTML5 的制定者想让这门语言更紧密地反映浏览器的现实. 放松的规则 不要求包含 <html>.<head> 和 <body> 元素. ...

  5. Swift入门篇-闭包和函数

    今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 ...

  6. MySQL的慢查询分析

    慢查询分析日最初是用来捕获比较“慢”的查询,在mysql5.1 + 版本中,慢查询的功能被加强,可以通过设置long_query_time为0来捕获所有的查询,而且查询的响应时间已经可以做到微妙级别. ...

  7. Android SDK镜像的介绍使用

    由于一些原因,Google相关很多服务都无法访问,所以在很多时候我们SDK也无法升级,当然通过技术手段肯定可以解决,但是比较麻烦,而且下载速度也不怎么样. 这里笔者介绍一个国内的Android镜像站, ...

  8. 20个最漂亮的基于WordPress的企业网站

    20个最漂亮的基于WordPress的企业网站 每个人都知道很好很强大的WordPress是开源的,并且有一个很强的的团队和更强大的支持社区.它被世界上的广大设计师.程序员和商业人员广泛使用.它已经成 ...

  9. Linux 升级 Python 至 3.x

    https://docs.python.org/3.5/library/json.html 在线手册 (1)下载wget https://www.python.org/ftp/python/3.5.2 ...

  10. Activity跳转时生命周期跟踪

    1. 步骤1(打开First Activity):经过onCreate.onStart.onResume后First Activity就展现啦: 2. 步骤2(跳转至Second Activity): ...