Adobe Experience Manager (AEM) development requires a minimal set of development tooling to be installed and set up on the developer machine. These tools support the development and building of AEM Projects.
Note that ~
is used as shorthand for the User’s Directory. In Windows, this is the equivalent of %HOMEPATH%
.
Experience Manager is a Java application, and thus requires the Java SDK to support the development and the AEM as a Cloud Service SDK.
java -version
java --version
The use of Homebrew is optional, but recommended.
Homebrew is a open-source package manager for macOS, Windows and Linux. All the supporting tools can be installed separately, Homebrew provides a convenient way to install and update a variety of development tools required for Experience Manager development.
brew --version
.xcode-select --install
brew --version
If you are using Homebrew, follow the Install using Homebrew instructions in the sections below. If you are not using Homebrew, install the tools using the OS-specific links.
Git is the source control management system used by Adobe Cloud Manager, and thus is required for development.
brew install git
git --version
git --version
Node.js is a JavaScript runtime environment used to work with the front-end assets of an AEM project’s ui.frontend sub-project. Node.js is distributed with npm, is the defacto Node.js package manager, used to manage JavaScript dependencies.
brew install node
node -v
npm -v
node -v
npm -v
AEM Project Archetype-based AEM Projects install an isolated version of Node.js at build time. It is good to keep the local development system’s version in sync (or close to) the Node.js and npm versions specified in your AEM Maven project’s Reactor pom.xml.
See this example AEM Project Reactor pom.xml for where to locate the Node.js and npm build versions.
Apache Maven is the open-source Java command-line tool used to build AEM Projects generated from the AEM Project Maven Archetype. All major IDE’s (IntelliJ IDEA, Visual Studio Code, Eclipse, etc.) have integrated Maven support.
brew install maven
mvn -v
mvn -v
The Adobe I/O CLI, or aio
, provides command line access to a variety of Adobe services, including Cloud Manager and Asset Compute. The Adobe I/O CLI plays an integral role in development on AEM as a Cloud Service as it provides developers the ability to:
node --version
to confirmnpm install -g @adobe/aio-cli
to install the aio
npm module globallyThe Adobe I/O Cloud Manager plugin allows the aio CLI to interact with Adobe Cloud Manager via the aio cloudmanager
command.
aio plugins:install @adobe/aio-cli-plugin-cloudmanager
to install the aio Cloud Manager plug-in.In order for the Adobe I/O CLI to communicate with Cloud Manager, a Cloud Manager integration must be created in Adobe I/O Console, and credentials must be obtained to successfully authenticate.
config.json
file into the Adobe I/O CLI
$ aio config:set ims.contexts.aio-cli-plugin-cloudmanager PATH_TO_CONFIG_JSON_FILE --file --json
private.key
file into the Adobe I/O CLI
$ aio config:set ims.contexts.aio-cli-plugin-cloudmanager.private_key PATH_TO_PRIVATE_KEY_FILE --file
Begin executing commands for Cloud Manager via the Adobe I/O CLI.
The AEM Rapid Development Environment plugin allows the aio CLI to interact with AEM as a Cloud Service Rapid Development Environments via the aio aem:rde
command.
aio plugins:install @adobe/aio-cli-plugin-aem-rde
to install the AEM Rapid Development Environments plugin.The Adobe I/O Cloud Manager plugin allows the aio CLI to generate and run Asset Compute workers via the aio asset-compute
command.
aio plugins:install @adobe/aio-cli-plugin-asset-compute
to install the aio Asset Compute plug-in.AEM development primarily consists of Java and Front-end (JavaScript, CSS, etc) development and XML management. The following are the most popular IDEs for AEM development.
IntelliJ IDEA is a powerful IDE for Java development. IntelliJ IDEA comes in two flavors, a free Community edition and a commercial (paid) Ultimate version. The free Community version is sufficient for AEM development, however the Ultimate expands its capability set.
Visual Studio Code (VS Code) is a free, open-source tool for front-end developers. Visual Studio Code can be set up to integrate content sync with AEM with the help of an Adobe tool, repo.
Visual Studio Code is the ideal choice for front-end developers primarily creating front-end code; JavaScript, CSS and HTML. While VS Code has Java support via extensions, it may lack some of the advanced features provided by more Java-specific.
Eclipse IDE is a popular IDEs for Java development, and supports the AEM Developer Tools plug-in provided by Adobe, providing an in-IDE GUI for authoring and to synchronize JCR content with a local AEM instance.