Set Up a WaveMaker Project Locally with Workspace Sync
Overview
When you need to build a WMX Widget, edit custom code, or use your own IDE tooling, you work on the project locally and sync changes back to WaveMaker Studio. This guide sets up that two-way sync using the wavemaker-workspace Maven plugin so you can pull the latest from Studio and push your local changes back without re-uploading ZIPs.
Prerequisites
Install and configure these on your machine before you start:
- Git
- JDK (version matching your WaveMaker project)
- Maven
You'll also need:
- Access to your WaveMaker Studio host URL
- Studio login credentials, or an auth token generated at
https://<WaveMaker_Studio_Host>/studio/services/auth/token
Export the Project as Sources
- In WaveMaker Studio, open Settings → Export → Export Project as Sources (ZIP).
- Download the ZIP and extract it to a location on your machine.
- Open the extracted folder in your editor or IDE (VS Code, IntelliJ, etc.).
You now have the full project source — including pom.xml, src/, and webapp assets — ready for local edits.
Initialize Workspace Sync
Run the wavemaker-workspace:init goal once per project. It wires the local folder to a specific Studio project so subsequent pulls and pushes target the right place.
- Open a terminal in the project root (the folder containing
pom.xml). - Run:
mvn wavemaker-workspace:init - Press
ywhen prompted to continue. - Provide:
- Studio Host URL — the domain of your WaveMaker Studio instance.
- Credentials — either email and password, or a token from
https://<WaveMaker_Studio_Host>/studio/services/auth/token.
- When prompted, select the correct project number from the list of projects available to your account.
Keep your Studio session open in the browser until init completes. The plugin uses your active session to enumerate and bind the project.
Pull and Push Changes
Once initialized, you have two commands for the sync loop.
-
Pull the latest from Studio — use this before starting a round of local edits so you're on top of any changes made in Studio:
mvn wavemaker-workspace:pull -
Push your local changes back — use this after you've added a WMX Widget, edited custom code, or made other modifications locally:
mvn wavemaker-workspace:push
After a successful push, refresh the project in Studio and your local changes — including any new WMX Widgets — will be available for use in the app.
Treat pull the way you'd treat git pull before starting work: run it at the start of each session to avoid conflicts with changes made directly in Studio.
Limitations and Constraints
| Constraint | Details |
|---|---|
| Active Studio session | The Studio session must remain open in the browser during init and for sync commands to authenticate reliably. |
| One project binding per folder | A project directory initialized against one Studio project cannot be re-pointed at another without re-running init. |
| Tooling requirements | Git, JDK, and Maven must be present on PATH. Missing any one of them will cause mvn wavemaker-workspace:* goals to fail. |
See Also
- WMX Components — build custom React Native components that slot into WaveMaker mobile apps
- WMX Agent — generate WMX components with AIRA
- Building Project with Maven — generate a deployable WAR from a locally-synced project