vltpack-maven-plugin

The vltpack-maven-plugin is a tool for developers of Adobe CQ/CRX/Granite-based applications to create content package artifacts from vlt working copies.

CRX Content Package Creation

Developers might use Adobe's VLT tool to develop their application content, code, and configuration in their local Granite instance, and then create CRX content packages to deploy that content, code, and configuration to shared repositories and production CRX servers.

The vltpack-maven-plugin defines a "vltpack" packaging type to represent CRX content packages. It provides a set of maven goals mapped to the default lifecycle (compile, test, package, install, deploy) that are designed to assemble the package pieces from a VLT working copy, overlay project properties, and embed any referenced maven dependencies, and then deploy that assembled package to a central maven artifact repository like Nexus or Artifactory.

Integration Test Support

In addition to the basic package creation goals, a number of goals have been provided to support the use of the maven-failsafe-plugin for execution of integration tests based on the Sling JUnit Framework. These are all mapped to the pre-integration-test phase so that they may be easily executed immediately prior to the execution of the maven-failsafe-plugin's integration-test goal. Simply use a profile to set the supportITs user property to enable the following goals:

IT-upload
Uploads the vltpack project artifact to the configured CRX server
IT-upload-tests
Uploads packages and bundles to prepare the CRX server for execution of integration tests
IT-server-ready
Causes the build to wait for server readiness by repeatedly pinging it at the configured path and checking the response for a specific substring
IT-http-properties
Exports the configured HTTP connection parameters as System properties for classes executed by the maven-failsafe-plugin during the integration-test phase.

Design Priorities

  • Enable consistent and reliable assembly of vault packages, and avoid interfering with the development process that produces the contents of those packages, with specific consideration given to Adobe's own instructions for development using the vlt tool.
  • Support a test-driven maven lifecycle using the Sling JUnit integration test framework. Bundle and package deployment goals are mapped to the pre-integration-test phase (not the install phase) so that maven install and deploy phases can be made dependent on successful test execution.
  • Provide a consistent configuration model such that any two maven goals that do similar things will accept a similar set of configuration parameters/property names.
  • Support an iterative development process for the package artifact itself by exposing convenient property names for configuration values that are likely to vary for local development, so that maven profiles and command-line scripts may be reused across modules and across projects.

Requirements

  • Maven 3.0
  • JDK 1.6
  • vltpack-maven-plugin depends on proprietary Adobe libraries which are available in the public Adobe Nexus repository