Deployment
This section covers the deployment of Jmix applications. We will consider basic principles and a few concrete scenarios.
The typical Jmix deployment configuration consists of the following components:
-
The application itself.
-
A relational database.
-
Reverse Proxy (optional).
As any Spring Boot application, a Jmix application can be built and deployed as an executable JAR, WAR, or as a Docker image.
All console commands are relative to the project root. |
Creating Executable JAR
In Jmix Studio, open the Gradle tool window and double-click Tasks → build → bootJar.
In the command line, use the following command:
./gradlew bootJar
The executable JAR name will consist of the name and the version of your project. For example, if you specified the following in your settings.gradle
:
rootProject.name = 'myapp'
and in your build.gradle
:
group = 'com.company'
version = '0.0.1-SNAPSHOT'
then the JAR name will be myapp-0.0.1-SNAPSHOT.jar
.
The executable JAR file is created in the /build/libs
folder. You can copy it anywhere and run as follows:
java -jar myapp-0.0.1-SNAPSHOT.jar
If you want to customize the packaging process or create a deployable WAR file, refer to the Spring Boot Documentation.
Creating WAR
If you want to build a WAR file for deployment to an application server, follow these steps:
-
Make sure your main application class extends
SpringBootServletInitializer
, for example:@SpringBootApplication public class MyApplication extends SpringBootServletInitializer { // ... }
-
Add the
war
plugin to theplugins
section of yourbuild.gradle
file:plugins { // ... id 'war' }
-
Reload Gradle project either by clicking Load Gradle Changes button in a popup at the right side of the editor window or clicking Reload All Gradle Projects in the Gradle tool window.
-
Open the Gradle tool window and double-click Tasks → build → bootWar, or use the following command:
./gradlew bootWar
The WAR file is created in the /build/libs
folder. The file name is generated as described in the previous section.
Creating Docker Image
In Jmix Studio, open the Gradle tool window and double-click Tasks → build → bootBuildImage task.
In the command line, use the following command:
./gradlew bootBuildImage
By default, the image will be created with the name of your project and tag which is equal to you project’s version.
For example, if you specified the following in your settings.gradle
:
rootProject.name = 'myapp'
and in your build.gradle
:
group = 'com.company'
version = '0.0.1-SNAPSHOT'
then the created image will be myapp:0.0.1-SNAPSHOT
.
You can find more information on image generation and customization in the Spring Boot Documentation.