A version-aware automation suite designed to solve "JAR Hell" in Mendix development. It intelligently identifies redundant libraries, manages specialized backups, and ensures project stability across all LTS versions.
Managing Java dependencies (JARs) in Mendix can be challenging, especially as projects evolve through multiple Studio Pro versions. This suite provides a universal, automated solution that adapts to the unique architecture of each Mendix version.
The project is built upon the mendix-userlib-cleaner engine by CINAQ Technology, extending it with:
- Automated Version Detection: Zero-config detection of Mendix 7 through 11.
- Universal Support: Logic-driven engines tailored for v7, v8, v9, v10, and v11.
- Vendorlib Aware: Intelligently handles Mendix 10/11's managed dependency system.
- DevOps Ready: Integrated
--checkmode for automated CI/CD pipeline quality gates. - Zero Dependency: Standalone binary (.exe) — no environment setup needed.
- Enhanced Safety: Automatic timestamped ZIP archiving with instant restoration.
| 📥 Download | 📖 Use Guide | 🐛 Report Bug | 🤝 Contribute | ⚖️ License |
|---|
Important
In case your browser blocks the .exe file, download the 'Source code (zip)' file instead. Unzip the file after downloading and copy the 'mx--cleanuserlib.exe' file from the unzipped folder to the root directory of your Mendix project.
-
Setup:
- Download the latest release
- Place
mx--cleanuserlib.exein your Mendix Project Root (the folder containing the.mprfile).
-
Run:
- Open your project folder in File Explorer.
- Type
cmdin the address bar and press Enter. - Execute the command below in your terminal
mx--cleanuserlibIf you need to revert changes, run these in your project root:
- Revert Latest:
mx--cleanuserlib --revert- Revert Specific:
mx--cleanuserlib [backup_name.zip] --revertFail your build pipeline if JAR issues are detected:
mx--cleanuserlib --checkReturns Exit Code 1 if redundant files are identified.
The suite follows a standard audit methodology:
- Resolution: Locates the project context via
.mprlookup. - Identification: Extracts the Studio Pro version from project metadata.
- Routing: Matches the project to its specialized cleanup engine.
- Audit (Mx10+): Syncs
userlibagainst the platform'svendorlibregistry. - Deep Scan: Uses signature matching to find duplicates with mismatched names.
- Filtering: Applies safety rules to protect required framework JARs.
- Archiving: Safely isolates cleaned userlib files into timestamped ZIP archives with rollback option.
As a portable utility, Windows SmartScreen may flag the .exe as "uncommon."
To proceed:
- Edge:
...> Keep > Show more > Keep anyway. - Windows: More info > Run anyway.
Note
This project is 100% open-source. For maximum transparency, you can review the source code in internal/src or build the binary yourself using internal/scripts/local_build.bat.
| Component | Responsibility |
|---|---|
internal/src/core/manager.py |
Orchestrator: handles detection, routing, and safety logic. |
internal/src/engines/clean_userlib_mx11.py |
Mx11 Engine: optimized for Java 21 and vendorlib registries. |
internal/src/engines/clean_userlib_mx10.py |
Mx10 Engine: handles managed vs unmanaged dependency audits. |
internal/src/engines/clean_userlib_mx9.py |
Mx9 Engine: advanced name normalization and deep-scan logic. |
internal/src/engines/clean_userlib_mx8.py |
Mx8 Engine: handles .requiredlib metadata and Java 11 transition. |
internal/src/engines/clean_userlib_mx7.py |
Mx7 Engine: baseline logic for legacy module packaging. |
This is a community-driven project. We welcome contributions of all kinds!
- Contributing: Please read our Contribution Guide and Code of Conduct.
- Security: Report vulnerabilities via our Security Policy.
- Credits: Built upon the mendix-userlib-cleaner engine by CINAQ Technology.