Best Approach for Developing Add-ons Without Frequent Publishing During Modular Migration

I’m currently migrating my project to a modular structure using Jmix add-ons (Jmix 1.7.1 ). However, it’s very inefficient to make small changes in an add-on module, publish it, and then update the dependency in the main project every time for testing.

Is there a better way to develop and test add-ons without repeatedly publishing them? Ideally, I’d like to:

  • Edit add-ons locally and see changes reflected immediately in the main project.

  • Avoid the publish → update → test cycle for faster iteration.

What’s the recommended approach in Jmix for this workflow? Are there any best practices or sample projects demonstrating this?

Hi,

As a minimal approach for local testing you can use the following:

  1. You main project has dependency on you add-on version x.y.z (to be clear - not the Jmix version, but your own add-on version)
  2. Add mavenLocal() as first repository (order matters) to your repositories block in build.gradle.
  3. As soon as you need to test the current state of add-on you should publish it to your local maven repository (gradlew publishToMavenLocal) under the same version x.y.z.
  4. Main project will automatically use current version from maven local (just restart it).
    You may need to reimport your main project at the first time usage of local version of add-on. Further locally published versions should be used automatically.

Regards,
Ivan

Take a look at the Composite Projects feature in Studio.