Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>AEM Build ButtonsNew to Visual Studio Code? Get it now.
AEM Build Buttons

AEM Build Buttons

Paras Jain

| (0) | Free
Trigger AEM Maven and frontend build commands with a single click, with auto-detection for multi-module Maven projects.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

AEM Build Buttons

A lightweight, responsive VS Code extension that gives Adobe Experience Manager (AEM) developers one-click build buttons in the Status Bar, Command Palette, and QuickPick menu.

It dynamically inspects your workspace root pom.xml, auto-detects multi-module project structures and Maven build profiles, detects frontend modules, and lets you trigger builds instantly without having to retype long Maven arguments.


Features

  • 🚀 Auto-Detection: Scans your root pom.xml on activation and generates tailored build buttons for detected Maven profiles (autoInstallPackage, autoInstallBundle, autoInstallPackagePublish, etc.) and modules.
  • 🔄 Live Hot-Reloading: Automatically updates status bar buttons and QuickPick items when pom.xml changes or when switching Git branches—no extension reload required.
  • ⚡ Status Bar Buttons: Pins the most-used 1–3 build actions directly to your status bar for instant access.
  • 📋 QuickPick Menu (AEM: Run Build...): Access the complete list of all auto-detected and configured build targets.
  • 📦 Module-Specific Builds: Target individual modules using -pl <module> -am with a dedicated QuickPick sub-menu.
  • 🎨 Frontend / Clientlib Support: Automatically detects ui.frontend modules with package.json and creates a direct npm run build trigger.
  • 🎨 Customizable Icons: Customize codicons per profile, built-in target, or custom command.
  • 🛑 Terminal Safety & Progress: Runs in a dedicated "AEM Build" terminal with withProgress notification, cancellation support (SIGINT / Ctrl+C), and concurrency collision warnings.

How Auto-Detection Works

When you open an AEM project, the extension parses the root pom.xml:

  1. <modules>: Extracts all module names (e.g. core, ui.apps, ui.content, ui.frontend, all).
  2. <profiles>/<profile>/<id>: Extracts active and available profile IDs.
  3. Frontend Detection: Looks for a module named ui.frontend (or matching /ui.*frontend.*/i) containing a package.json. If present, registers a Build Frontend / Clientlib action (npm run build).

Sample pom.xml Mapping

Given a typical AEM project pom.xml:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.aem</groupId>
  <artifactId>mysite</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>core</module>
    <module>ui.apps</module>
    <module>ui.content</module>
    <module>ui.frontend</module>
    <module>all</module>
  </modules>

  <profiles>
    <profile>
      <id>autoInstallPackage</id>
    </profile>
    <profile>
      <id>autoInstallBundle</id>
    </profile>
    <profile>
      <id>autoInstallPackagePublish</id>
    </profile>
  </profiles>
</project>

The extension automatically creates:

Status Bar / QuickPick Label Command Generated Default Icon
Install: Full Package mvn clean install -PautoInstallPackage $(rocket)
Install: Bundle Only mvn clean install -PautoInstallBundle $(package)
Install: Package to Publish mvn clean install -PautoInstallPackagePublish $(cloud-upload)
Compile Only (no install) mvn clean install $(beaker)
Build Frontend / Clientlib npm run build (in ui.frontend) $(code)

Configuration & Customization

Configure the extension via VS Code Settings (Ctrl+, or Cmd+,) under AEM Build Buttons, or directly in your .vscode/settings.json.

Settings Reference

Setting Type Default Description
aemBuildButtons.autoDetect boolean true Automatically detect modules and profiles from pom.xml. If false, only manual commands are used.
aemBuildButtons.pinnedCount number 3 Number of commands pinned directly to the status bar (remaining live in QuickPick).
aemBuildButtons.profileIcons object See below Customize icons for profiles and targets using VS Code codicon names.
aemBuildButtons.commands array [] Custom commands or overrides for auto-detected commands.
aemBuildButtons.mavenExecutable string "mvn" Path or command for Maven (e.g. "./mvnw", "mvn.cmd", or /usr/local/bin/mvn).
aemBuildButtons.cleanBeforeBuild boolean true Include clean in Maven goals (clean install vs install).

Customizing Icons

You can customize icons for any profile or built-in target using any VS Code Codicon:

{
  "aemBuildButtons.profileIcons": {
    "autoInstallPackage": "zap",
    "autoInstallBundle": "archive",
    "autoInstallPackagePublish": "globe",
    "compile": "hammer",
    "frontend": "file-code"
  }
}

Overriding Commands & Adding Custom Builds

You can override auto-detected commands (matched by label, case-insensitive) or define brand new commands in aemBuildButtons.commands:

{
  "aemBuildButtons.commands": [
    {
      "label": "Install: Full Package",
      "command": "mvn clean install -PautoInstallPackage -Daem.port=4503",
      "icon": "flame"
    },
    {
      "label": "Deploy Core to Author",
      "command": "mvn clean install -PautoInstallBundle -pl core -am",
      "cwd": "${workspaceFolder}",
      "icon": "server"
    }
  ]
}

Commands

Access these commands from the VS Code Command Palette (Ctrl+Shift+P / Cmd+Shift+P):

  • AEM: Run Build...: Opens the QuickPick menu showing all detected and custom build commands.
  • AEM: Build specific module...: Select a module from the <modules> list and choose a targeted Maven or frontend command.
  • AEM: Refresh Project / Rescan pom.xml: Forces an immediate re-scan and updates status bar buttons.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft