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