Composite Projects

Studio allows you to develop multiple add-ons and applications as a single IDE project, even if they are located in different source code repositories.

To create a composite project, start the project wizard and select the Composite Project template. Studio will create a project with the following structure (provided that the project name is demo):

root-dir/
    demo-all/
        build.gradle
        settings.gradle

After that, you can create or add subprojects using the New → Subproject actions of the Jmix Tool Window. We recommend placing subprojects inside the project root next to the <project-name>-all aggregator project.

Studio shows the composite project and all subprojects as top-level nodes in the Jmix Tool Window:

composite projects structure

You can edit common properties of all subprojects. Click Settings→Project Properties on the toolbar of the Jmix Tool Window. Select All subprojects when Studio asks you which project you want to edit:

composite project edit properties

The common properties include the artifact repository settings and Jmix framework version. So, you can upgrade all subprojects to a newer Jmix version at once.

Studio can generate Liquibase changelogs in add-ons, including when working with them in composite projects.

To generate a changelog, you first need to define a Data Store in the add-on. It will be displayed in the Jmix tree:

add on data store

Its settings will be stored in the jmix-studio.xml file instead of the Java configuration.

Now, you can execute the Generate Liquibase Changelog action on the Data Store.

In a composite project, you should specify a Data Store for the same add-on again, because the composite project has its own jmix-studio.xml file located in the <project-name>-all aggregator project. So, data store settings will be stored separately for when you are working on the add-on in a standalone project and in a composite project, but the set of generated changelogs will be the same.