1. 程式人生 > >Adobe CMS 扒坑記之始

Adobe CMS 扒坑記之始

AEM是Adobe公司所出的商業內容管理系統,全稱阿豆比體驗管理系統(Adobe Experience Manager),其前身叫CQ,分別有CQ5 CQ6兩個大版本。它提供了整套的網站內容管理系統解決方案,是一個企業級的重型系統。當然,這套系統在中國幾乎沒什麼人知曉。但在澳洲,這系統幾乎在所有金融行業遍地開花了。

基於客戶的發展戰略,不可避免地開始了AEM的扒坑之旅。不過,此前一直在扒Drupal的坑,再扒一堆坑也無關緊要了。

AEM 技術棧

Apache Sling

Apache Sling 是一個以內容為中心的網路框架。其使用Java的內容倉庫去儲存與管理內容,比如Apache Jackrabbit

CRX

  • 基於REST原則,以內容為導向進行開發
  • CQ5(或者說AEM5, 6)天然整合
  • 用於處理HTTP的渲染與資料儲存的請求。這是一種新的方式,它將在後臺將內容組裝,渲染最終將其呈現給使用者
  • 能將內容物件與處理資料的組成對映起來
  • 支援服務端與AJAX請求
  • 支援多種指令碼語言(比如,JSP, ESP, Ruby等)

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的整個開發流程。