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
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:
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:
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:
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.