How to build executable JAR with Maven in Spring Boot
In this tutorial, we will learn how to build executable JAR with Maven in Spring Boot application. Spring Boot provides spring-boot-maven-plugin to create or build an executable JAR of your Spring Boot application.
Follow the below steps to build executable JAR:
Step 1: Go to your Spring Boot application and open the pom.xml file.
Step 2: Mention the packing type in the pom.xml file
<packaging>jar</packaging>
and add the below spring-boot-maven-plugin code just below the closing dependencies </dependencies>
tag.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Step 3: Now run the mvn clean package
command. If you are using STS/Eclipse IDE, then Right Click on your project » Run As » Maven build… » Goals: clean package
» Run.
Step 4: Step 3 will create an executable JAR file of your Spring Boot application and put it within the target folder.
Step 5: Run the executable JAR, using the following Java command.
java -jar target/<your-jar-name>.jar
For your reference, I have attached my complete pom.xml file.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>org.websparrow</groupId>
<artifactId>springboot-exe-jar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-exe-jar</name>
<!-- define the packaging type -->
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- Spring boot maven plugin to create executable JAR -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
References
Similar Posts
- @ControllerAdvice vs. @RestControllerAdvice in Spring
- Spring MVC Database Connectivity using XML Configuration
- Spring @RestController, @GetMapping, @PostMapping, @PutMapping, and @DeleteMapping Annotation Example
- Spring 5 @Qualifier annotation example
- Spring Task Scheduler Example using @Scheduled Annotation