Bootique is a minimally opinionated java launcher and integration technology. It is intended for building container-less runnable Java applications. With Bootique you can create REST services, webapps, jobs, DB migration tasks, etc. and run them as if they were simple commands. No JavaEE container required! Among other things Bootique is an ideal platform for Java microservices, as it allows you to create a fully-functional app with minimal setup.
Each Bootique app is a collection of modules interacting with each other via dependency injection. This GitHub project provides Bootique core. Bootique team also develops a number of important modules. A full list is available here.
Quick Links
- WebSite
- Getting Started
- Docs - documentation collection for Bootique core and all standard modules.
Support
You have two options:
- Open an issue on GitHub with a label of "help wanted" or "question" (or "bug" if you think you found a bug).
- Post a question on the Bootique forum.
TL;DR
For the impatient, here is how to get started with Bootique:
- Declare the official module collection:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.bootique.bom</groupId>
<artifactId>bootique-bom</artifactId>
<version>2.0.M1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- Include the modules that you need:
<dependencies>
<dependency>
<groupId>io.bootique.jersey</groupId>
<artifactId>bootique-jersey</artifactId>
</dependency>
<dependency>
<groupId>io.bootique.logback</groupId>
<artifactId>bootique-logback</artifactId>
</dependency>
</dependencies>
- Write your app:
package com.foo;
import io.bootique.Bootique;
public class Application {
public static void main(String[] args) {
Bootique
.app(args)
.autoLoadModules()
.exec()
.exit();
}
}
It has main()
method, so you can run it!
For a more detailed tutorial proceed to this link.
Upgrading
See the "maven-central" badge above for the current production version of bootique-bom
. When upgrading, don't forget to check upgrade notes specific to your version.