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>.jarFor 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
- Spring Setter-based Dependency Injection Example
- Spring AOP around advice (MethodInterceptor) example using XML configuration
- Lazy Initialization in Spring Boot
- Spring Boot + Activiti Service Task Example
- Spring Boot Security- Remember Me Example
- Spring MVC CRUD Example using JdbcTemplate + MySQL
- @ControllerAdvice vs. @RestControllerAdvice in Spring
- Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException
- Does Spring Boot automatically close database connection?
- Spring RestTemplate vs RestClient