Managing Maven / JAR Dependencies

SkillDev tools

Lets your agent add, update, remove and audit a Mendix module's Java dependencies in Studio Pro settings.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Managing Maven / JAR Dependencies skill

About this skill

Add, update, remove and audit a module's Maven/JAR dependencies in MDL, Studio Pro's Module Settings → Java dependencies tab. Use when a Java action needs an external library, when bumping a library version, or when auditing which modules pull what.

What this skill tells your AI

The instructions your AI receives, as published by mendixlabs/mxcli in .claude/skills/mendix/java-dependencies/SKILL.md and read by ahel’s review.

This skill explains how to add, update, and remove Maven/JAR dependencies in a Mendix module using MDL. These are the dependencies declared in Studio Pro's Module Settings → Java dependencies tab, stored as Projects$JarDependency entries inside the module's Projects$ModuleSettings unit.

When to Use This Skill

  • Adding a new external library for a Java action (Jackson, Apache HTTP client, etc.)
  • Updating a library version across modules
  • Disabling a dependency without removing it (included = false)
  • Auditing which modules have JAR dependencies

If you only need to copy JARs into vendorlib/ for a local build (without registering them in module settings), that is a different operation and does NOT require MDL.

Listing Dependencies

-- All modules
LIST JAR DEPENDENCIES;

-- Single module
LIST JAR DEPENDENCIES IN MyModule;

Output columns: module, group, artifact, version, included.

Describing a Dependency

DESCRIBE JAR DEPENDENCY MyModule 'com.fasterxml.jackson.core:jackson-databind';

Outputs a re-executable ALTER MODULE ... ADD JAR DEPENDENCY (...) block.

Adding a Dependency

ALTER MODULE MyModule
  ADD JAR DEPENDENCY (
    group    = 'com.fasterxml.jackson.core',
    artifact = 'jackson-databind',
    version  = '2.21.2',
    included = true,
  );
  • included defaults to true when set explicitly; always set it to be explicit.
  • The coordinate group:artifact must be unique within the module.

Updating a Dependency

-- Change the version
ALTER MODULE MyModule
  SET JAR DEPENDENCY 'com.fasterxml.jackson.core:jackson-databind' VERSION '2.21.3';

-- Disable without removing (keeps the entry, classpath excluded at build time)
ALTER MODULE MyModule
  SET JAR DEPENDENCY 'com.fasterxml.jackson.core:jackson-databind' INCLUDED false;

Managing Transitive Exclusions

-- Exclude a transitive dependency
ALTER MODULE MyModule
  SET JAR DEPENDENCY 'org.duckdb:duckdb_jdbc'
    ADD EXCLUSION 'com.example:conflicting-lib';

-- Remove an exclusion
ALTER MODULE MyModule
  SET JAR DEPENDENCY 'org.duckdb:duckdb_jdbc'
    DROP EXCLUSION 'com.example:conflicting-lib';

Removing a Dependency

ALTER MODULE MyModule
  DROP JAR DEPENDENCY 'com.fasterxml.jackson.core:jackson-databind';

Jackson Version Gotcha

Jackson 2.x and 3.x use different package namespaces:

VersionGroup IDImport prefix
2.xcom.fasterxml.jackson.corecom.fasterxml.jackson.*
3.xtools.jackson.coretools.jackson.*

If Java code imports com.fasterxml.jackson.databind.* you need 2.x. Pin to the version the Mendix runtime bundles to avoid classloader conflicts:

ls ~/.mxcli/mxbuild/<runtime-version>/runtime/bundles/ | grep jackson

After Adding a Dependency

MDL writes the Projects$JarDependency entry into the .mpr file. Gradle still needs to resolve and download the JAR:

  1. Open the project in Studio Pro — it will trigger Gradle to populate vendorlib/.
  2. Or run mxcli docker build which invokes mx and triggers the Gradle sync.

Until Gradle runs, the JAR is declared but not yet present in vendorlib/. This is the same state as adding a dependency in Studio Pro before clicking OK.

Coordinate Format

Coordinates use the group:artifact format (no version):

'com.fasterxml.jackson.core:jackson-databind'
'org.duckdb:duckdb_jdbc'

The version is stored separately and shown in LIST JAR DEPENDENCIES output.

Related Skills

Signals

GitHub stars
122
Forks
49
Last commit
Sep 2026
Advanced
Catalog kind
skill
Key
java-dependencies
Source
github.com/mendixlabs/mxcli