2、环境搭建

发布于:2026-07-08 Adobe AEM 0条评论

——————————目录大纲——————————

————————————————————————

一、说明

本文介绍搭建本地AEM实例以及本地代码导入后的事项。

AEM全称Adobe Experience Management,是一套基于OSGI、Apache Sling和Java Content Repository技术的完整企业解决方案。传统网站是基于HTML、JS、CSS来构建,也可使用目前流行的各种框架Vue3,React等等。在AEM中,是基于模板、组件、内容组成网站的页面。


二、正文

1、下载和安装

1.1 JDK

版本,目前代码中AEM-SDK的版本是2023.2.11289.20230224T170559Z-230100,那么统一使用JDK11进行开发即可,如果是下的较新的AEM-SDK本地运行包,需要JDK21才行

——切记一定使用JDK11,否则可能会出现Maven编译报错等疑难杂症,这是老师同学们血淋淋的经验!——

——切记一定使用JDK11,否则可能会出现Maven编译报错等疑难杂症,这是老师同学们血淋淋的经验!——

——切记一定使用JDK11,否则可能会出现Maven编译报错等疑难杂症,这是老师同学们血淋淋的经验!——

下载地址:https://experience.adobe.com/#/downloads/content/software-distribution/en/general.html?1_group.propertyvalues.property=.%2Fjcr%3Acontent%2Fmetadata%2Fdc%3AsoftwareType&1_group.propertyvalues.operation=equals&1_group.propertyvalues.0_values=software-type%3Atooling&fulltext=Oracle%7E+JDK%7E+11%7E&orderby=%40jcr%3Acontent%2Fjcr%3AlastModified&orderby.sort=desc&layout=list&p=list&p.offset=limit&p.offset=0&p.limit=14444

下载并安装完JDK之后,首先配置系统环境变量:

进入【系统设置】的【高级系统设置】中:

依次添加【用户环境变量】和【系统环境变量】:

变量详情如下:

①用户变量增加:

变量名:
JAVA_HOME
变量值(参考自己jdk安装以后的路径):
C:\Program Files\Java\jdk-11

变量名:
JRE_HOME
变量值(参考自己jdk安装以后的路径):
C:\Program Files\Java\jdk-11

②系统变量Path中增加:

C:\Program Files\Java\jdk-11\bin

然后在CMD控制台(或者powershell)下执行:

-- Windows:
java -verison

-- Mac OS:
java --version

-- Linux
java --version

提示如下即可完成Java环境的配置:

1.2 node.js

下载和安装:https://nodejs.org/en/download/package-manager

使用命令验证是否已安装Node.js:

node -v

使用命令验证是否已安装npm:

npm -v

1.3 maven

下载:https://maven.apache.org/download.cgi

安装:https://maven.apache.org/install.html

命令验证是否已安装Maven:

mvn -v

1.4 AEM SDK

下载地址:https://experience.adobe.com/#/downloads/content/software-distribution/en/aemcloud.html?fulltext=SDK*&orderby=%40jcr%3Acontent%2Fjcr%3AlastModified&orderby.sort=desc&layout=list&p.offset=0&p.limit=16

按照日期倒序排,选择最新的一个进行下载:

aem-sdk-2024.8.17465.202…

下载完毕后打开压缩包,里面结构如下:

主要用到的是第二个quickstart.jar,首先创建个目录并解压,比如C:\office\aem-sdk\author:

把aem-sdk-quickstart-2024.5.16461.20240524T172309Z-240500.jar更名为:aem-author-p4502.jar

crx-quickstart目录为author实例启动后自动生成的内容,jar包名字的命名方式,aem-实例名(author/publish)-p端口号.jar

1.5 repo(可选)

当更新了本地的内容,需要同步到自己local的instance环境,有两种形式,一个是Maven直接打包,一个是就是通过repo的方式

repo的方式比较快捷,能实时将一个或多个文件、文件夹推送到AEM local环境。

以Windows为例,首先是安装Cygwin64这个工具,它相当于提供了兼容层能在Windows下执行Linux环境的一些操作。

下载地址:https://www.cygwin.com/install.html 

安装:

安装过程中,需要记好安装的目录要与上一步主程序目录保持一致:

然后在后面的软件包这里这里需要注意:

将这几个命令都进行安装:curl、wget、lynx、gcc-core、gcc-g++、make、gdb、binutils、cmake、zip,以备后用。

安装完毕后打开cygwin,需要将权限进行配置(重要)

echo "none / cygdrive binary,user,noacl,posix=0 0 0" >> /etc/fstab

在cygwin窗口中,执行以下命令更新软件包:

apt-cyg update

如果提示apt-cyg: command not found

那么把该文件放到cygwin的根目录下的bin目录下:

apt-cyg

然后重新打开窗口再试。

接下来,就可以去IDE中配置repo了,可参考文档:https://github.com/Adobe-Marketing-Cloud/tools/tree/master/repo#installation

①下载https://github.com/Adobe-Marketing-Cloud/tools/releases/download/repo-1.4/repo

②在IDE中配置,以Idea举例:

Windows下配置:

PUT:
程序:C:\office\cygwin64\bin\bash
实参:-l C:\office\repo put -f $UnixSeparators($FilePath$)$
工作目录:留空

GET:
程序:C:\office\cygwin64\bin\bash
实参:-l C:\office\repo get -f $UnixSeparators($FilePath$)$
工作目录:留空

STATUS:
程序:C:\office\cygwin64\bin\bash
实参:-l C:\office\repo st -f $UnixSeparators($FilePath$)$
工作目录:留空

DIFF:
程序:C:\office\cygwin64\bin\bash
实参:-l C:\office\repo diff -f $UnixSeparators($FilePath$)$
工作目录:留空

然后还需要在项目根目录下面创建文件.repo:

内容为:

server=http://localhost:4502
credentials=admin:admin

最后,就可以实现右击文件夹或者文件进行repo推送了:

同时可以在按键绑定里面绑定快捷键:

1.6 Git代码拉取

Git地址:https://gitlab.xpaas.lenovo.com/lenovo/lenovo-cms

如果提示在Windows下拉取一些比较大的开源项目经常会提示文件路径太长(filename too long),然后怎么都不成功,可以尝试以下解决方式:

①配置git

git config --system core.longpaths true


②修改文件C:\Program Files\Git\etc\gitconfig(需要以管理员身份打开)

[core]
autocrlf = true
fscache = true
symlinks = false
longpaths = true

longpaths = true表示允许路径字符串超过260

③输入命令查看

git config --system core.longpaths

1.7 Dispatcher模拟(可选)

如果需要本地调试Dispatcher的规则,那么可能就要用到当前内容。

基本有两种形式:

①本机安装Apache然后利用httpd的一些规则达到部分模拟。

②下载Docker相关内容,按照官方文档进行处理:https://experienceleague.adobe.com/zh-hans/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/dispatcher-tools

由于公司内网对Windows Docker Desktop是禁止的,因此需要通过虚拟机的形式安装子系统然后进行安装,大致如下:

在AEM-SDK中,有以下执行脚本:

aem-sdk-dispatcher-tools-2.0.219-unix.sh

copy脚本到Linux环境并执行下面命令:

chmod a+x aem-sdk-dispatcher-tools-x.x.x-unix.sh
./aem-sdk-dispatcher-tools-x.x.x-unix.sh

会出现dispatcher-sdk-2.0.252文件夹

该文件夹下面即为所有的Dispatcher相关所需要的内容:

我们只需要将对应的Dispatcher文件放到src目录下面,然后执行以下语句进行启动或者验证

#### 验证配置
脚本默认在src目录下,因此在根目录(如:`/opt/docker/aem/dispatcher-sdk-2.0.219`)执行如下指令可以校验配置是否正常
./bin/validate.sh ./src

#### 运行dispatcher
./bin/docker_run_hot_reload.sh ./src localhost:4502 8080

目前经过调试和验证的Dispatcher配置如下,和项目www环境的配置保持一致,替换到src目录下即可直接使用:

aem_dispather.zip

需要注意的是,每次在windows改完,会因为换行符等问题导致启动失败,有以下两种方式解决:

①将配置格式改为UNIX/LINUX;

②每次启动Dispatcher前执行上面压缩包内的complete_fix.sh文件

并附带两个完整shell脚本,放到Dispatcher根目录下使用即可:

start.shtest.sh

脚本内容:

### test.sh
### 用于测试配置是否正确,类似httpd -t或者nginx -t
./src/complete_fix.sh
bash /opt/aem/dispatcher/dispatcher-sdk-2.0.252/bin/validate.sh /opt/aem/dispatcher/dispatcher-sdk-2.0.252/src

### start.sh
### 用于启动Dispatcher
./src/complete_fix.sh
/opt/aem/dispatcher/dispatcher-sdk-2.0.252/bin/docker_run_hot_reload.sh /opt/aem/dispatcher/dispatcher-sdk-2.0.252/src 192.168.56.1:80 8080

2、运行

2.1 控制台启动

在当前目录使用CMD,启动author实例

java -jar aem-author-p4502.jar -& 
或
java -Xmx1024M -jar aem-author-p4502.jar -p 4502 -r author

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

其中,以上两个参数是可省的,因为默认的参数就是端口 4502,模式 author。

也可以设置更复杂的参数,比如直接创建一个bat文件,里面录入:

# 以gui方式启动
java -jar aem-author-p4502.jar -gui

# 以debug方式启动
java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n -jar aem-author-p4502.jar

其中JVM远程调试端口为8888(可自定义),如果加入-gui参数,那么还会弹出以下图形界面方便查看进度已经开关:

2.2 GUI 双击启动

当然,有时为了方便,也可以直接双击aem-author-p4502.jar启动。只是有几个需要注意的地方。 
默认的情况,是以author模式,启动在localhost:4502。但我们可以在启动以前,通过修改jar包的名字,达到不同模式不同端口的效果。 

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

比如,修改成 

aem-publish-p4503.jar 

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

<aem-install>/author
和
<aem-install>/publish

以gui方式启动完毕后会弹出该界面:

2.3 启动配置

首次运行会出现以下输入登录用户名和密码,统一都输入admin即可:

以后再运行,出现以下内容,即证明启动成功:

结束窗口或者使用Ctrl + C即可停止服务。

启动后会在jar包所在同级目录生成crx-quickstart目录,目录结构如下:

第一次启动会比较久,不要太着急,启动完毕后,默认浏览器会自动打开http://localhost:4502地址。

然后输入刚才在CMD中录入的用户名admin密码admin进行登录:

进入AEM的author实例首页,我们就可以在这里进行开发工作,author实例就算是安装完毕了。

备注:

在AEM中,分为Author实例和Publish实例,还有一个Dispatcher组件。

Author实例,顾名思义是作者实例,我们可以在Author实例中进行模板、组件的使用,还可以通过代码实现自定义组件、自定义模板等等功能。开发人员的工作内容也大多集中在Author实例上。

Publish实例是发布实例,我们在Author实例中创建页面、在页面中使用组件并编辑内容后,就可以将Author实例中的页面发布到Publish实例中去。

Dispatcher组件是一个集Web服务器、缓存、CDN等功能于一体的组件。

3、本地代码

3.1 下载

登录Gitlab:https://gitlab.xpaas.lenovo.com/lenovo/lenovo-cms

Copy地址,推荐使用ssh的方式,不用来回更新密码:

本地进行clone后目录结构:

3.2 导入IDE

根据自己习惯使用的IDE开发工具,将代码进行导入,可以参考以下地址:

IDEA:https://experienceleague.adobe.com/zh-hans/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/development-tools#intellij-idea

VSCode:https://experienceleague.adobe.com/zh-hans/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/development-tools#microsoft-visual-studio%E4%BB%A3%E7%A0%81

Eclipse:https://experienceleague.adobe.com/zh-hans/docs/experience-manager-learn/cloud-service/local-development-environment-set-up/development-tools#eclipse

3.3 编译打包

***打包前建议先将环境变量按照以下文档的1.1进行配置:***

9、问题及其他汇总

3.3.1 执行项目编译

初次启动SDK,需要执行完整过程的编译,打开IDE,如:VSCODE、IDEA,在确保本地AEM SDK已经启动的情况下,依次执行以下步骤:

①在代码根目录,执行如下编译指令:

mvn clean install -PautoInstallSinglePackage

②进入http://localhost:4502/crx/packmgr/index.jsp ,然后查看左侧是否类似如下图所示:

证明整体项目都已经打包编译完成,并把包部署到了本地SDK中。

③按需在crx/de中导入页面后,即可进入测试使用。

以下是常用的针对不同目录的打包编译命令:

-----------------打包细节说明-----------------

下面命令是一些特殊情况下,单独针对目录的编译方式,比如若要生成所有模块,请在项目根目录中运行以下命令,并使用 Maven 3:

mvn clean install

一个正在运行的AEM实例,则可以构建和打包整个项目,然后使用以下方法部署到AEM中:

mvn clean install -PautoInstallSinglePackage

若要将其部署到发布实例,请运行

mvn clean install -PautoInstallPackagePublish

如果是Java类的改动,比如core目录下的,那么需要打包bundle:

mvn clean install -PautoInstallBundle

如果是ui.apps、ui.content、ui.config,需要打包package可以使用:

mvn clean install -PautoInstallPackage

3.3.2 确认是否编译成功

首先进入本地环境的目录下面查看:
http://localhost:4502/assets.html/content/dam
对应是:Assets - Files

此时能看到Lenovo文件夹,这时就证明编译完成。

注意:如果是编译后访问localhost:4502是404或者其他错误,建议确认JDK为11后,清空maven repo仓库,删除AEM-SDK生成的crx-quickstart目录后,重新进行编译尝试!

3.4 将lenovo相关包通过CRX进行导入

依次将extra目录下的包通过http://localhost:4502/crx/de/index.jsp 进行导入:

导入后,需要手动点击install,让包内容在环境中解压:

3.5 本地接口调用

3.5.1 鉴权

3.5.2 GET

3.5.3 POST

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理