Maven
VCF Automation – Build Tools for VMware Aria – Useful Maven Command Reference

Page Contents
Earlier posts covered Build Tools setup and basic projects. This reference collects the Maven commands for creating projects, pushing and pulling content, and cleaning up packages, together with their parameters.
Create projects
In each example, replace groupId and artifactId with your values. Set archetypeVersion to the required Build Tools version. For new projects, use the latest available release.
TypeScript project
A TypeScript-based project manages all Orchestrator content: workflows, actions, resources and configurations. Create one with this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-typescript-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=vro-ts
JavaScript project
A JavaScript-based project manages only Orchestrator actions. It does not support workflows, resources or configurations. Create one with this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-actions-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=vro-actions
XML project
An XML-based project manages workflows, resources and configurations in Orchestrator's native XML format. It also supports actions, but I recommend a JavaScript-based project to avoid wrapping them in XML. Create an XML-based project with this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-xml-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=vro-xml -DworkflowsPath=Simplygeek
Set workflowsPath to the top-level Orchestrator folder for the workflows. You can add more folders later.
Mixed project
This Maven multi-module project contains JavaScript-based and XML-based subprojects. The Build Tools documentation recommends it for initial onboarding. I prefer creating the two projects separately and do not recommend this type. To create a mixed project, use this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.o11n.archetypes -DarchetypeArtifactId=package-mixed-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=vro-mixed -DworkflowsPath=Simplygeek
ABX project
An ABX project manages a VCF Automation ABX action. ABX provides an alternative orchestration runtime to Orchestrator. Each action needs its own project, which adds management overhead. Create one with this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.polyglot.archetypes -DarchetypeArtifactId=package-polyglot-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=abx -Druntime=nodejs -Dtype=abx
The runtime parameter can be one of nodejs, python or powershell.
vRA 8.x project
A vRA 8.x project manages VCF Automation content such as Templates (blueprints), Custom Forms, Content Sources and Policies. Use this type for content outside ABX and Orchestrator. Create one with this command:
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=com.vmware.pscoe.vra-ng.archetypes -DarchetypeArtifactId=package-vra-ng-archetype -DarchetypeVersion=4.2.1 -DgroupId=com.simplygeek -DartifactId=vra-content
Push content
Use vrealize:push to push local content to VCF Automation:
mvn package vrealize:push -Pprofile_name
Replace profile_name with your VCF Automation environment's profile name from Maven settings.xml.
The command accepts these additional parameters:
| Parameter | Description |
|---|---|
| includeDependencies=<true/false> | For projects with dependencies on other projects, controls whether the push includes those dependencies. Set to true or false. |
| skipInstallNodeDeps=<true/false> | Skips installation of required Node dependencies when pushing. Installation can add approximately 30 seconds to 5 minutes, so skipping it can save time during frequent pushes. Set to true or false. |
| skipTests=<true/false> | This can be used to skip running any unit tests that have been defined. Values should be true or false. |
| license.skip | Ignores missing licence headers or files that could otherwise cause the push to fail. Use this when you do not require that information. No value is needed. |
| license.skipAddThirdParty=<true/false> | Same as license.skip but supports the values true or false. |
| vro.packageImportConfigurationAttributeValues=<true/false> | Controls whether configuration attribute values are imported. Applies only to Orchestrator XML-based projects containing configurations. Set to true or false. |
| vro.packageImportConfigSecureStringAttributeValues=<true/false> | Same as vro.packageImportConfigurationAttributeValues but for SecureString attributes. Values should be true or false. |
| vrealize.ssl.ignore.certificate | Ignore SSL certificate errors by passing this parameter. No values need to be passed. |
Additional parameters are passed using the -D flag.
Pull content
Build Tools provides two commands to pull content into the local environment:
vro:pullretrieves VCF Operations Orchestrator content.vra-ng:pullretrieves VCF Automation content.
Pulling ABX content is not supported. The following examples show both commands.
mvn vro:pull -Pprofile_name
mvn vra-ng:pull -Pprofile_name
Replace profile_name with your VCF Automation environment's profile name from Maven settings.xml.
The commands accept these additional parameters:
| Parameter | Description |
|---|---|
| packageName=<package name> | Can be used to pull the content of another package into your project. |
Additional parameters are passed using the -D flag.
Clean up Orchestrator packages
Deleting Orchestrator content locally does not remove it from the server. Stale items can accumulate. Use vrealize:clean to clean up server packages instead of removing them manually.
You can include vrealize:clean in your release process.
Use exactly one of the following parameters:
| Parameter | Description |
|---|---|
| cleanUpLastVersion=<true/false> | Clean up the last version of the deployed package from the server. Mutually exclusive with cleanUpOldVersions. Values should be true or false. |
| cleanUpOldVersions=<true/false> | Clean up old package versions from the server. Mutually exclusive with cleanUpLastVersion. Values should be true or false. |
| includeDependencies=<true/false> | Whether dependencies should also be cleaned up. Values should be true or false. |
Use the following command to clean up the current package version from the server:
mvn vrealize:clean -DcleanUpLastVersion=true -DcleanUpOldVersions=false -DincludeDependencies=false -Pprofile_name
Use the following command to clean up the current package version from the server and its dependencies:
mvn vrealize:clean -DcleanUpLastVersion=true -DcleanUpOldVersions=false -DincludeDependencies=true -Pprofile_name
Use the following command to clean up old package versions and dependencies from the server:
mvn vrealize:clean -DcleanUpLastVersion=false -DcleanUpOldVersions=true -DincludeDependencies=true -Pprofile_name
Replace profile_name with your VCF Automation environment's profile name from Maven settings.xml.
I hope this post has been helpful and acts as a useful reference to the Build Tools commands available. If you have any additional commands or parameters that I missed, please comment and share!
Join the discussion
Sign in with GitHub to leave a comment. View discussions on GitHub.

