Spring Boot 是一种快速创建独立的、基于Spring的应用程序的方式,具有代码少、配置简单、开发效率高、开箱即用等特点。在实际应用中,我们通常需要将 Spring Boot 应用程序打包为一个可执行的 jar 包,以方便进行部署和运行。而分离打 jar 包则是将引用的依赖库全部打包进来的方式,使得打包后的 jar 包可以直接运行,不需要依赖外部的类库文件。
下面我们将讲解 Spring Boot 分离打 jar 包的两种配置方式。
配置方式一
在 pom.xml 文件中添加以下代码:
<!-- Maven Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}</finalName>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
执行 mvn package
命令,则可以生成一个分离打的可执行 jar 包。
配置方式二
在 pom.xml 文件中添加以下代码:
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com.example.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
首先配置项目的 <mainClass>
标签,指定程序入口。然后执行 mvn clean package
命令,则可以生成一个分离打的可执行 jar 包。
以上两种配置方式均可以实现 Spring Boot 分离打 jar 包的效果,开发人员可以根据实际需求选择使用。
下面给出两个示例,分别使用上述两种配置方式生成分离打的可执行 jar 包。
示例一:使用 Maven Shade Plugin 生成分离打的可执行 jar 包
在项目根目录下创建以下 demo.java 文件:
package com.example.demo;
public class demo {
public String sayHello(String name) {
return "Hello, " + name + "!";
}
public static void main(String[] args) {
demo d = new demo();
System.out.println(d.sayHello("World"));
}
}
在 pom.xml 文件中添加以下代码:
<groupId>com.example</groupId>
<artifactId>maven-shade-plugin-demo</artifactId>
<version>1.0.0</version>
<!-- Maven Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}</finalName>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
执行 mvn package
命令,则可以在 target 目录下生成一个名为 maven-shade-plugin-demo-1.0.0.jar 的可执行 jar 包。在命令行中输入以下命令则可以执行该 jar 包:
java -jar maven-shade-plugin-demo-1.0.0.jar
如果一切正常,则控制台会输出以下内容:
Hello, World!
示例二:使用 Maven Assembly Plugin 生成分离打的可执行 jar 包
在项目根目录下创建以下 demo.java 文件:
package com.example.demo;
public class demo {
public String sayHello(String name) {
return "Hello, " + name + "!";
}
public static void main(String[] args) {
demo d = new demo();
System.out.println(d.sayHello("World"));
}
}
在 pom.xml 文件中添加以下代码:
<groupId>com.example</groupId>
<artifactId>maven-assembly-plugin-demo</artifactId>
<version>1.0.0</version>
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com.example.demo.demo</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
执行 mvn clean package
命令,则可以在 target 目录下生成一个名为 maven-assembly-plugin-demo-1.0.0-jar-with-dependencies.jar 的可执行 jar 包。在命令行中输入以下命令则可以执行该 jar 包:
java -jar maven-assembly-plugin-demo-1.0.0-jar-with-dependencies.jar
如果一切正常,则控制台会输出以下内容:
Hello, World!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot分离打Jar包的两种配置方式 - Python技术站