Overview

Unfortunately Adobe does not publish their product binaries (e.g. Quickstart JAR, Hotfixes, Service Packs etc.) within a Maven Artifact Repository that is accessible to AEM customers or partners.

But for Deployment Automation e.g. with wcm.io DevOps CONGA or Ansible haven these binaries available in a structured way is very important. Using a Maven Artifact Repository fulfills the requirements, and also adds the possibility to cache much-used artifacts locally.

This guideline describes a naming convention for Group IDs and Artifact IDs how these files should be published in your local (and protected) Artifact Repository. Once deployed using this convention they can be used by all tooling and configuration definition that adheres to this convention. (But you still have to upload the artifacts manually to have them ready-to-use.)

Types of AEM binaries

We distinguish between the following types of binaries (can be downloaded from Adobe Software Distribution Portal):

Within the Maintenance Release Vehicle Definitions Adobe describes different package types:

Separation from artifacts published by Adobe

Adobe publishes it's artifacts with Group IDs com.adobe.* and com.day.*.

To clearly separate the "self-created" artifacts we use our own "namespace" by using Group IDs starting with adobe.binary.aem.*

Artifact Naming Convention

Binary TypeGroup IDArtifact IDClassifierVersionExtension
Full Release (Quickstart)adobe.binary.aem.<aem-version>.quickstartaem-quickstart
From Quickstart JARjar
Service Pack (SP)adobe.binary.aem.<aem-version>.servicepackPackage name without version
Package Versionzip
Cumulative Fix Pack (CFP)adobe.binary.aem.<aem-version>.cumulativefixpackPackage name without version
Package Versionzip
Oak Cumulative Fix Pack (COFP)adobe.binary.aem.<aem-version>.cumulativeoakfixpackPackage name without version
Package Versionzip

Hotfix (HF)

adobe.binary.aem.<aem-version>.hotfixPackage name without version
Package Versionzip
Feature Pack (FP)adobe.binary.aem.<aem-version>.featurepackPackage name without version
Package Versionzip
Overlayadobe.binary.aem.<aem-version>.overlayPackage name without version
Package Versionzip
AEM Dispatcheradobe.binary.aem.dispatcherdispatcherPlatform identifierVersiontar.gz or zip
AEM SDKadobe.binary.aem.<aem-version>.sdkPackage name without version
Package Versionzip
AEM SDK Add-Onadobe.binary.aem.<aem-version>.addonPackage name without version
Package Versionzip
Othersadobe.binary.aem.<aem-version>.toolingPackage name without version
Package Versionzip

Remarks:

Examples

Examples for Dependencies following this convention:

<!-- Full Release -->
<dependency>
  <groupId>adobe.binary.aem.63.quickstart</groupId>
  <artifactId>aem-quickstart</artifactId>
  <version>6.3.0</version>
</dependency>

<!-- Service Pack -->
<dependency>
  <groupId>adobe.binary.aem.62.servicepack</groupId>
  <artifactId>AEM-6.2-Service-Pack-1-6.2.SP1</artifactId>
  <version>1.0</version>
  <type>zip</type>
</dependency>

<!-- Cumulative Fix Pack -->
<dependency>
  <groupId>adobe.binary.aem.63.cumulativefixpack</groupId>
  <artifactId>AEM-CFP-6.3.0.2</artifactId>
  <version>2.0</version>
  <type>zip</type>
</dependency>

<!-- Cumulative Oak Fix Pack -->
<dependency>
  <groupId>adobe.binary.aem.63.cumulativeoakfixpack</groupId>
  <artifactId>cq-6.3.0-hotfix-17649</artifactId>
  <version>1.0</version>
  <type>zip</type>
</dependency>

<!-- Hotfix -->
<dependency>
  <groupId>adobe.binary.aem.62.hotfix</groupId>
  <artifactId>cq-6.2.0-hotfix-12785</artifactId>
  <version>7.0</version>
  <type>zip</type>
</dependency>

<!-- Feature Pack -->
<dependency>
  <groupId>adobe.binary.aem.61.featurepack</groupId>
  <artifactId>AEM-6.1-Communities-Livefyre-Feature-Pack-7-HF1</artifactId>
  <version>1.8.557.3</version>
  <type>zip</type>
</dependency>

<!-- Dispatcher -->
<dependency>
  <groupId>adobe.binary.aem.dispatcher</groupId>
  <artifactId>dispatcher</artifactId>
  <classifier>apache2.4-linux-i686-ssl</classifier>
  <version>4.2.2</version>
  <type>tar.gz</type>
</dependency>

Automatically generate Artifact Coordinates

You can use this tool to generate the artifact coordinates automatically for a given filename:
http://wcm.io/util/aem-binary-artifact-name-generator.html

The tools uses some heuristics to detect the property file type automatically.