A modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications.
Micronaut uses maven shade plugin for packaging the applcation which put all the runtime dependencies an uber jar.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>${mainClass}</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Micronaut supports http deployment based on netty server and partial/compatible support for JAX-RS resrouces.
<dependencies>
<dependency>
<groupId>io.micronaut.jaxrs</groupId>
<artifactId>micronaut-jaxrs-server</artifactId>
<version>1.0.0.M1</version>
</dependency>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-runtime</artifactId>
</dependency>
<dependency>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-http-server-netty</artifactId>
</dependency>
</dependencies>
In addition to these it required additional plugins/ dependecies at compile phase to process its annotations.
<annotationProcessorPaths>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId>
</path>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-validation</artifactId>
</path>
<path>
<groupId>io.micronaut.jaxrs</groupId>
<artifactId>micronaut-jaxrs-processor</artifactId>
</path>
</annotationProcessorPaths>
Micronaut provides build in runner class that can be invoked through main class.
public class Application {
public static void main(String[] args) {
Micronaut.run(Application.class);
}
}
which can be trigger in multiple ways.
mvn exec:java
java - jar target/microservice-starter-micronaut.jar